文章目录
流(Stream)
- 流(Stream)
- 流的分类
- java.io.*
- I/O体系的四大抽象类
- 流的分类总结表
- 流的层次结构图
- 字节输入流的层次结构图
- 字节输出流的层次结构图
- 字符输入流的层次结构图
- 字符输出流的层次结构图
流,代表的是程序中数据的流通。 数据流是一串连续不断的数据的集合,而每一比特的数据,就如同水管(假设足够狭窄)中串行流淌的一滴水。
在Java程序中,对于数据的 I/O 操作是以流的方式进行的。 我认为,“流”这个概念,构建起了Java整个I/O体系的框架。
在学习《程序设计基础》的时候,我们就应该知道——I/O的数据流向和我们固有的认知相反: 输入流:流入程序的数据 输出流:流出程序的数据
在Java程序中,从输入流读取数据(读到内存中),而从输出流输出数据(从内存存储到文件或显示到屏幕上)。
流的分类- 按流的方向不同
- 输入流
- 输出流
- 按处理数据的单位不同
- 字节流
- 字符流
- 按功能不同
- 节点流
- 处理流
Java语言中,控制数据流的类都放在java.io包中 java.io包中有两大继承体系:
- 以byte处理为主的Stream类, 其命名方式是:XXXStream(XXXInputStream/XXXOutputStream)
- 以字符处理为主的Reader/Writer类,他们的命名方式是:XXXReader/XXXWriter
InputStream、OutputStream、Reader、 Writer这四个类,是这两大继承体系的父类,全是抽象类。
Note:斜体表示抽象类,加粗表示节点流。
分类字节输入流字节输出流字符输入流字符输出流抽象父类InputStreamOutputStreamReaderWriter访问文件FileInputStreamFileOutputStreamFileReaderFileWriter访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter访问字符串StringReaderStringWriter缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter转换流InputStreamReaderOutputStreamWriter对象流ObjectInputStreamObjectOutputStream抽象父类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter打印流PrintStreamPrintWriter推回输入流PushbackInputStreamPushbackReader特殊流DataInputStreamDataOutputStream 流的层次结构图