一、字节流
1、输入字节流:
InputStream 所有输入字节流的基类。抽象类。
FileInputStream 读取文件输入字节流。
BufferedInputStream 缓冲输入字节流。该类内部其实就是维护了一个8kb字节数组而已。该类出现的目的是为了提高读读取文件数据的效率。
2、输出字节流:
OutputStream 所有输出字节流的基类。抽象类。
FileOutputStream 向文件输出数据的输出字节流。
BufferedOutputStream 缓冲输出字节流。该类出现的目的是为了提高向文件写数据的效率。该类内部其实也是维护了一个8kb的字节数组而已。
3、字节流使用条件
读取到数据不需要经过编码或者解码的情况下这时候使用字节流
字符流=字节流+编码(解码)
三、字符流
1、输入字符流:
Reader 所有输入字符流的基类。抽象类。
FileReader 读取文件字符的输入字符流。
BufferedReader 缓冲输入字符流。该类出现的目的是为了提高读取文件字符的效率并且扩展了功能(readLine()),它内部其实就是维护了一个8192个长度的字符数组。
2、输出字符流:
Writer 所有输出字符流的基类。抽象类。
FileWriter 向文件输出字符数据的输出字符流。
BufferedWriter 缓冲输出字符流。该类出现的目的是为了提高写文件字符的效率并且扩展了功能(newLine())。
3、字符流使用条件
如果读写的都是字符数据,这时候我们就使用字符流。
四、转换流
输入字节流的转换:InputStreamReader
输出字节流的转换流:OutputStreamWriter
五、转换流的作用
1、可以把对应的字节流转换成字符流使用。
2、可以指定编码表进行读写文件的数据。
六、FileReader、FileWriter 类
FileReader、FileWriter这两个类默认是使用的gbk编码表。不能由你指定编码表读写文件数据。