流分类
输入流:数据源到程序(InputStream、Reader读进来)
输出流:程序到目的地(OutputStream、Writer写出去)
![](https://img.haomeiwen.com/i28036843/71aaf68fbd5a3b68.png)
![](https://img.haomeiwen.com/i28036843/690b4207bae2b63b.png)
节点流:可以直接从数据源或目的地读写数据
![](https://img.haomeiwen.com/i28036843/93ce2c806a1dfde8.png)
处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装。目的主要是简化操作和提高性能。
![](https://img.haomeiwen.com/i28036843/6dcd9d32cbcbd246.png)
节点流和处理流的关系:
①节点流处于io操作的第一线,所有操作必须通过他们进行;
② 处理流可以对其他流进行处理(提高效率或操作灵活性)。
字节流:按照字节读取数据(InputStream、OutputStream)
字符流:按照字符读取数据(Reader、Writer),因为文件编码的不同,从而有了对字符进行高效操作的字符流对象。
原理:底层还是基于字节流操作,自动搜寻了指定的码表。
![](https://img.haomeiwen.com/i28036843/b33a9c6f1e7df0d2.png)
![](https://img.haomeiwen.com/i28036843/0259882c95624de6.png)
字节流
![](https://img.haomeiwen.com/i28036843/820e0b205affeb6d.png)
字符流
![](https://img.haomeiwen.com/i28036843/6b49ecb3407eb683.png)
网友评论