IO流主要用来处理设备之间的数据传输,流的本质是数据传输。Java对于数据的操作都是通过流的方式来实现的,而Java用于操作流的对象都在IO包中
IO流的分类
Java I/O流主要包含以下几个层次,包含三个部分。在整个Java IO包中最重要的就是5个类和1个接口,5个类是指:File
、InputStream
、OutputStream
、Reader
和Writer
;一个接口是指Serializable
接口
- 流式部分——IO主体部分
- 非流式部分——主要包含一些辅助流失部分的类,如
File
- 其他类——如:与文件读取部分与安全相关的类,
SerializablePermission
类,以及与本地操作系统相关的文件系统的类,如FileSystem
类和Win32FileSystem
类
Java中字符采用的尸Unicode标准,因此一个字符代表16位,一个字节代表8位,1个字符可以用2个字节表示
字符流和字节流的区别
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:
- 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi