一、概念:流是对于数据传输的一种抽象描述(任何有能力产出流即源,或者有能力接受数据的接收端对象都可以被统称为:流)
流的产生(源):可以从本地文件/写入本地文件,也可以从网络上获取
流的传输形式:字节流/字符流
增强版的流:添加中间件(增加流的功能)-->{如:初始点与目的地之间转换所采用的不同的方式}
流的最终地:最终大部分被发送到网上(输送至网)
流动的方向:输入和输出
二、流的三要素
流的源和目的 | 文件 / 字节数组 /管道 /字符数组/String对象 / 网络 / 流 |
流的数据形式 | 字符 / 字节 |
流的方向 | 输入 / 输出 |
三、Java/IO流的体系
1.根据流的方向和数据形式有4种类型
输入 | 字节 |
输出 | 字节 |
输入 | 字符 |
输出 | 字符 |
2.四种形式
输入字节:inputStream
输出字节:outputStream
输入字符:reader
输出字符:writer
3.图示分类
4.节点流:java针对基本数据源的操作
过滤流:增强流的处理功能
5.流体系列层次结构详解:
(1)数据源+InputStream[节点流]:数据源与InputStream的结合
ByteAyyayInputStream(java.io):字节数组输入流--->从字节数组中读取数据,也就是从内存中读取数据包含一个内部缓冲区,指向该字节数组内部计数器跟踪reade方法要提供的下一个字节,此类中的方法在关闭此流后任然可以被调用,而不会产生任何IOException
FileInputStream(java.io):文件输入流--->用于从文件中读取信息
PipedInputStream(java.io):管道输入流--->管道输入流应该链接到管道输出流,管道输入流提供要写入管道输出流的所有数据节点写入[数据从PipedInputStream对象读取,并且有其他线程写入到相应的PipedOutStream]
String:StringBufferedInputStream(java.io)
ObjectInputStream(java.io):对象输入流