一、IO流原理
IO,即in
和out
,也就是输入和输出,指应用程序和外部设备之间的数据传递,常见的外部设备包括文件、管道、网络连接。
Java 中是通过流处理IO 的,那么什么是流?
流(Stream
),是一个抽象的概念,是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道。
当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。
二、 分类
- 根据操作数据单位不同分为
- 字节流(8bit)
- 字节流一般用来处理图像、视频、音频、PPT、Word等类型的文件。
- 字符流(16bit)
- 字符流一般用于处理纯文本类型的文件,如TXT文件等,但不能处理图像视频等非文本文件。
- 字节流(8bit)
- 根据数据流的流向分为
- 输入流
- 输出流
- 按流的角色不同可以分为
- 节点流
- 处理流