一、介绍
1、介绍:
流是程序中流淌的血液,数据的传输都是通过两种类型的流:输入流和输出流,这就是IO。
需要读入数据使用输入流,需要写入数据使用输出流;
按照操作的数据类型分类:字节流和字符流
字节流可以读取和写入任何数据,因为任何数据最终都能以字节存储;
字符流只能操作文本类型的文件,按照字符进行读取和写入,方便对字符的操作
常用的一些字节流子类:
文件输入输出流:FileInputStream、FileOutputStream
对象输入输出流:ObjectInputStream、ObjectOutputStream
常用的一些字符流子类:
文件输入输出流:FileReader FileWriter
缓存的文件输入输出流:BufferedReader BufferedWriter
当然还有一些其它的子类也是非常常用的,上述给出的是典型的使用场景
2、比较
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:Non IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。