1.什么是IO流:
(1)它的核心是对文件的操作
(2)IO流主要分为两大类:
字节流:可以处理任何类型的数据,如图片、视频等。字节流以字节(8bit位)为单位
字符流:只能处理字符类型的数据。字符流以字符为单位,根据编码表映射字符,一次可能读取多个字节。
(3)IO流的本质是数据的传输。并且流是单向的
(4)常用的字节流:FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream。
2.IO流的类型:
(1)阻塞型IO:阻塞型IO在读取数据时,如果数据未到达,会一直阻塞到读取到数据为止,所以称为阻塞型IO,在高并发的环境下性能不佳。
(2)非阻塞型IO(NIO):NIO不是使用 “流” 来作为数据的传输方式,而是使用通道,通道的数据传输是双向的,且NIO的数据写入和读取都是异步的,不会阻塞线程,所以称为非阻塞型IO,在高并发的环境下性能很好。
3.java中操作流的相关类和接口:
(1)文件类:File
(2)字节输入流:InputStream
(3)字节输出流:OutputSream
(4)字符输入流:Reader
(5)字符输出流:Writer
4.流的本质:
(1)流是一组有顺序的,有起点和终点的字节集合
(2)数据在设备间的传输称之为流