首先分为高级流和低级流,低级流是节点流,高级流是处理流,高级流是在低级流上做的连接。
流又分为输入流和输出流,输入流是读,输出流是写。那么将各种流一一分析其特点。
输入流:
1:java.io.InputStream
File InputStream 文件输入流(低级流)作用是实际连接程序与文件的管道,负责从文件中读取字节。
2:BufferedInputStream 缓冲字节输入流(高级流)作用是块读字节数据加速。
3:ObjectInputStream 对象输入流(高级流) 作用是对对象进行反序列化。
4:InputStreamReader 转换输入流(高级流) 作用是衔接字节与字符流,并将字节转化为字符。
5:BufferedReader 缓冲字符输入流(高级流) 作用是块读文本数据加速,按行读取字符串。
输出流:
1:java.io.OutputStream
FileOutputStream 文件输出流(低级流)作用是实际连接程序与文件的通道,负责将字节写入文件中。
2:BuffOutputStream 文件输出流,作用是块读字节数据加速。
3:ObjectOutputStream 对象输出流,作用是进行对象反序列化。
4:OutputStreamWriter 转换输出流 作用是衔接字节与字符流,将写出的字符转字节。
5:PrintWriter 缓冲字符输出流 带自动行刷新,作用是块写文本数据加速,按行写出字符串,自动行刷新。
注:1:序列化是将对象转换成字节,反序列化是将字节转换成对象。
2:块写是char[] cb(8k) 将写出的数据存入char数组,直接存满一次性写出,保证块写提高效率。
3:readLine()读取一行,内部有一个char[] cb 8k,将读取数据存入数组,将数组一行字符返回。