vivo面試學習1(io和nio)
阿新 • • 發佈:2018-09-23
left bsp ont apt 字符流 屏幕 但是 buffer 讀取
一、io流(一次從open到底層的操作)
輸入和輸出流
字節流 | 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 | |
對象 | 面向流 | 面向緩沖 |
是否阻塞 | 是 | 否 |
selector監視Channel |
Java NIO的選擇器允許一個單獨的線程來監視多個輸入通道。
只要Channel向Selector註冊了Channel向Selector註冊了某種特定的事件,Selector就會監聽這個事件是否發生,一旦發生某個事件,便會通知對應的Channel。
使用選擇器,借助單一線程,就可對數量龐大的i/o通道實施監控和維護。
vivo面試學習1(io和nio)