IO流是我们日常开发中必不可少的,但是如何去给它们分类呢,有几种IO流呢?这里总结一下。
首先单纯的问有几种IO流并不准确,因为划分的标准不一样,答案也不一样
1. 按流向分类
输入流 :数据流向程序
输出流:数据从程序流出。
2. 按处理单位
字节流:一次读入或读出是8位二进制
字符流:一次读入或读出是16位二进制
3. 按功能不同分类
节点流:包裹源头。
处理流:增强功能,提高性能。
4. 最根本的四大类
InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)
5. 四大类的扩展,按处理单位区分
InputStream:FileInputStream、PipedInputStream、ByteArrayInputStream、BufferedInputstream、SequenceInputStream、DataInputStream、ObjectInputStream
OutputStream:FileOutputStream、PipedOutputStream、ByteArrayOutputStream、BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream
Reader:FileReader、PipedReader、CharArrayReader、BufferedReader、InputStreamReader
Writer:FileWriter、PipedWriter、CharArrayWriter、BufferedWriter、InputStreamWriter、PrintWriter
6. 常用的流
对文件进行操作:FileInputStream(字节输入流)、FileOutputStream(字节输出流)、FileReader(字符输入流)、FileWriter(字符输出流)
对管道进行操作:PipedInputStream(字节输入流)、PipedOutStream(字节输出流)、PipedReader(字符输入流)、PipedWriter(字符输出流)
字节/字符数组:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter
Buffered 缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
字节转化成字符流:InputStreamReader、OutputStreamWriter
数据流:DataInputStream、DataOutputStream
打印流:PrintStream、PrintWriter
对象流:ObjectInputStream、ObjectOutputStream
序列化流:SequenceInputStream