什么是IO流
为了和外部设备进行数据传递,引入了IO流,它可以将数据输出到外部设备以及读取外部设备的数据。
外部设备可以是:文件、内存、网络连接
当程序需要从外部设备读取数据时,就会向外部设备开启一条流通道。
IO流的分类
1、输入流与输出流
输入和输出的相对的,相对于程序来说,将文件读取到程序需要使用输入流,将数据写到磁盘文件中使用输出流。
2、字节流和字符流
字节流和字符流的区别在于操作的数据单位不同。字节流每次操作8位bit,字符流每次操作一个字符,java使用的默认字符集为utf-8,utf-8使用三个字节代表一个汉字,也就是24个bit位,使用一个字节代表一个字母或者数字,也就是8个bit位,如果使用字节流读取文本文件,每次读取的数据就是一个字节,也就是汉字你需要读取3次,字母需要读取一次,为了每次读取的单元能够可读,引入了字符流,每次读取一个字符所占用的字节。
3、节点流和处理流
节点流:直接对数据进行操作
处理流:对已存在的流进行封装