IO流(Java面试题)

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、什么是缓冲区?作用是什么?有什么优缺点?

缓冲区是一块特殊的内存区域,频繁的操作资源性能会比较低,所以采用缓冲区减少操作资源的次数,比如传输文件

10、用String读取文件,如果文件过长,除了拆分读取,有没有其他办法?

11、IO方面,知道NIO吗?开发中有没有遇到过IO出现死锁的情况?

12、如果遇到IO死锁,怎样快速发现是IO死锁的问题而不是其他问题?

发布了52 篇原创文章 · 获赞 2 · 访问量 1855

猜你喜欢

转载自blog.csdn.net/qq_42972645/article/details/105657992