1、IO的分类有哪些?
按流向分为输入流和输出流
按类型分为字节流和字符流
按功能分为节点流和处理流
2、字节流和字符流的区别?
字节流:处理除了文字之外的数据,无缓冲区,每传一次数据就会打开一次文件
字符流:处理文字和字符的数据,有缓存区,使用缓冲区打开文件次数少
3、节点流和处理流的区别?
节点流:可以从某节点读数据或向某节点写数据的流。如 FileInputStream
处理流:对节点流的包装,有比较多的功能
4、IO类型有哪些?
(1)阻塞式IO
(2)非阻塞式ID
(3)IO复用
(4)信号驱动IO
(5)异步IO
5、常见IO流有哪些?如何使用?(图要记熟)
节点流:文件、管道、字节数组
处理流:缓冲、数据、对象
6、AIO、BIO、NIO的区别?
AIO:异步非阻塞
BIO:同步阻塞
NIO:同步非阻塞,IO复用
7、流需不需要关闭?什么时候关闭?
(1)流一旦打开就必须要关闭,使用close方法
(2)多个流互相调用关闭最外层的流
(3)放在finally语句中,finally一定会执行
8、BufferedReader属于哪种流?它主要是用来做什么的?它里面有那些经典的方法?
属于处理流中的缓冲流,可以将读取的内容存在内存里面,有readLine()方法读取一行
9、什么是缓冲区?作用是什么?有什么优缺点?
缓冲区是一块特殊的内存区域,频繁的操作资源性能会比较低,所以采用缓冲区减少操作资源的次数,比如传输文件