Channels and Buffers(通道和緩衝區)html
標準的IO基於字節流和字符流進行操做的,而NIO是基於通道(Channel)和緩衝區(Buffer)進行操做,數據老是從通道讀取到緩衝區中,或者從緩衝區寫入到通道中。java
Selectors(選擇器)git
Java NIO引入了選擇器的概念,選擇器用於監聽多個通道的事件(好比:鏈接打開,數據到達)。所以,單個的線程能夠監聽多個數據通道。github
Non-blocking IO(非阻塞IO)編程
Java NIO能夠讓你非阻塞的使用IO,例如:當線程從通道讀取數據到緩衝區時,線程仍是能夠進行其餘事情。當數據被寫入到緩衝區時,線程能夠繼續處理它。從緩衝區寫入通道也相似。服務器
github NIOdemo地址:https://github.com/loveincode/StudyTest/tree/master/src/NIO併發
1 Java NIO 教程 6 Java NIO 通道之間的數據傳輸 11 Java NIO 非阻塞式服務器socket
2 Java NIO概述 7 Java NIO Selector 12 Java NIO DataGramChannelasync
3 Java NIO Channel 8 Java NIO FileChannel 13 Java NIO Pipepost
4 Java NIO Buffer 9 Java NIO SocketChannel 14 Java NIO 與IO
5 Java NIO Scatter / Gather 10 Java NIO ServerSocketChannel 15 Java NIO Path (待翻譯)
16 Java NIO Files (待翻譯)
17 Java NIO AsynchronousFileChannel (待翻譯)
原文 併發編程網(翻譯):http://ifeve.com/java-nio-all/ 源自 http://tutorials.jenkov.com/java-nio/index.html
JavaIO學習手冊 : Java IO 學習總結 學習手冊總結