IO流的分类
按照数据类型:字符流和字节流;按照数据流向:输入流和输出流
字节流和字符流
字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。字节流和字符流的区别:
- 读写单位不同 ,字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节;
- 处理对象不同 ,字节流能处理所有类型的数据(如图片,视频等),而字符流只能处理字符类型的数据;
- 字节流在操作的时候本身是不会用的缓冲区的,是文件本身的直接操作,而字符流在操作的时候是会用到缓冲区的,是通过缓冲区来操作文件
- 总结:优先使用字节流,因为硬盘上的所有文件都是以字节的形式进行传输或者保存的。但是字符只有在内存中才会形成,所有在开发中,字节流使用广泛
输入流和输出流
输入流只能进行读操作,输出流只能进行写操作。