vivo面试学习1(io和nio)

一、io流(一次从open到底层的操作)

输入和输出流

IO流
字节流 Reader、Writer
字符流 InputStream、OutputStream

 

 

 

字节流:可以处理所有bit为单位存储的文件,也就是说可以处理所有的文件,但是在处理字符上的速度不如字符流

字符流:只能处理字符,但处理字符的能力很快 

一次读文件的操作:

采用FileInputStream的read()方法,每次从源文件中读取512个字节,存储在缓冲区buffer中,再将以buffer中的值构造的字符串new String(buffer)显示在屏幕上。

一次写文件的操作:

采用System.in.read(buffer)从键盘输入一行文字,存储在缓冲区buffer中,再用FileOutStream的write()方法,将buffer中的内容写入文件write.txt中。 

二、NIO

IO和NIO的区别
  IO NIO
对象 面向流 面向缓冲
是否阻塞
    selector监视Channel

 

 

 

 

 

 Java NIO的选择器允许一个单独的线程来监视多个输入通道。

只要Channel向Selector注册了Channel向Selector注册了某种特定的事件,Selector就会监听这个事件是否发生,一旦发生某个事件,便会通知对应的Channel。

使用选择器,借助单一线程,就可对数量庞大的i/o通道实施监控和维护。

posted @ 2018-09-23 19:07  思考的胖头鱼  阅读(668)  评论(0编辑  收藏  举报