黑马程序员--------JAVA基础IO

来源:互联网 发布:辐射2中文版 mac 编辑:程序博客网 时间:2024/05/24 11:14

IO流的分类:
流向分类:
输入流
输出流
类型分类:
字节流
字节输入流:
InputStream 字节输入流 超类
|- FileInputStream 基本的流
|- BufferedInputStream 高效的流
字节输出流:
OutputStream 字节输出流 超类
|- FileOutputStream 基本的流
|- BufferedOutputStream 高效的流

字符流
字符输入流:
Reader 字符输入流 超类
|- InputStreamReader 转换流  属于 字符输入流
|- FileReader 基本的流
|- BufferedReader 高效的流

字符输出流:
Writer 字符输出流 超类
|- OutputStreamWriter 转换流 属于 字符输出流
|- FileWriter 基本的流
|- BufferedWriter 高效的流

IO流中常见的方法:


如何实现文件中数据的追加?
构造方法中实现, 构造方法的第二个参数设置为true
FileOutputStream
FileWriter

读数据:
读字节:
int read() 一个字节
int read(byte[] buffer) 一个字节数组

读字符
int read(); 一个字符
int read(char[] buffer) 一个字符数组
String readLine() 一行字符串(高效字符输入流中使用)

写数据:
写字节:
void write(int ch) 写入一个字节
void write(byte[] buffer) 写入一个字节数组
void write(byte[] buffer, int startIndex, int len) 写入字节数组的一部分
写字符:
void write(int ch) 写入一个字符
void write(char[] buffer) 写入一个字符数组
void write(char[] buffer, int startIndex, int len) 写入字符数组的一部分
void write(String str) 写入一个字符串
void write(String str, int startIndex, int len) 写入字符串的一部分

其他方法:
void flush() 刷新
void close() 关闭
void newLine()换行, 高效字符输出流特有方法



字符编码表:
编码表
由字符及其对应的数值组成的一张表

常见的编码表:
ASCII: 用7位来表示一个数据
ISO-8859-1: 在西欧使用,用8位来表示一个数据
GB2312: 简体中文, 使用2个字节来表示一个汉字
GBK:  简体中文
GB18030:  简体中文, 替代GBK
BIG5: 繁体中文, 台湾、香港 使用
Unicode: 国际码,统一码, 用2个字节表示一个数据, 在java中使用的码表就是Unicode
utf-8:国际码,统一码, 表示一个数据,所使用的字节数是变化的,使用1-4位字节来表示一个数据,  表示一个汉字使用3个字节

编码:把看懂的 转换成 看不懂的

解码:把看不懂的 转换成 看懂的


转换流OutputStreamWriter:
把基本的字节流,使用给定的编码表,进行数据的编码


转换流InputStreamReader:
把基本的字节流,使用给定的编码表,进行数据的解码

LineNumberReader: 带有行号的字符缓冲流
public int getLineNumber()获得当前行号。 
public void setLineNumber(int lineNumber)设置当前行号。 


0 0
原创粉丝点击