流的介绍
流:数据有序集合,可以从一个端传输到另一个端的过程流(有方向的数据传输)。
流的本质:数据传输。
(一)流的划分:
1、根据方向(输入流、输出流)
输入流:将数据从介质(磁盘或网络)到当前程序的传输称为输入流。
基类:InputStream(字节输入流)、Writer(字符输入流)
输出流:将数据从程序写入到存储介质的传输称为输入流。
基类:OutputStream(字节输出流)、Reader(字符输出流)
2、根据操作单元(字节流、字符流)
字节流:二进制表示的数据。
基类:InputStream(字节输入流)、OutputStream(字节输出流)
字符流:数据以字符形式表示
基类:Writer(字符输入流)、Reader(字符输出流)
3、根据角色(节点流、处理流)
节点流(介质流):和介质直接连接的流,数据从/向一个介质(磁盘、鼠标、屏幕)读/写的流,称为节点流,也称为低级流。
处理流(高级流):和节点流直接相连的流。
(二)字节和字符的区别
字节:存储的是数据是二进制形式。
字符:存储的字符数据。
1、读写单元不同
字节流是以字节(8bit)为单位;字符流以字符为单位,根据码表映射字符,一次可读取多个字节。
2、处理的对象不同
字节流能处理所有类型的数据(图片、视频);字符流只能处理字符类型的数据。
3、处理效率
字节流(直接进行读取)效率较高;字符流(涉及到编码解码的过程)效率较低。
4、可移植性
字节流(和平台无关)可移植性较高;字符流(需要考虑编码解码过程,编码和解码的码表要保持一致)可移植性较低。
(三)节点流和处理流的区别
节点流直接和介质相连接;处理流直接和节点流相连接。
(四)Charset——编码类