Java NIO 新型的異步IO方法

jopen 10年前發布 | 30K 次閱讀 Java NIO Java開發

1.   基本 概念

IO 是主存和外部設備 ( 硬盤、終端和網絡等 ) 拷貝數據的過程。 IO 是操作系統的底層功能實現,底層通過 I/O 指令進行完成。

所有語言運行時系統提供執行 I/O 較高級別的工具。 (c 的 printf scanf,java 的面向對象封裝 )

2.    Java 標準 io 回顧

Java 標準 IO 類庫是 io 面向對象的一種抽象。基于本地方法的底層實現,我們無須關注底層實現。 InputStream\OutputStream( 字節流 ) :一次傳送一個字節。 Reader\Writer( 字符流 ) :一次一個字符。

3.    nio 簡介

nio 是 java New IO 的簡稱,在 jdk1.4 里提供的新 api 。 Sun 官方標榜的特性如下:

–     為所有的原始類型提供 (Buffer) 緩存支持。

–     字符集編碼解碼解決方案。

–     Channel :一個新的原始 I/O 抽象。

–     支持鎖和內存映射文件的文件訪問接口。

–     提供多路 (non-bloking) 非阻塞式的高伸縮性網絡 I/O 。

本文將圍繞這幾個特性進行學習和介紹。

4.   Buffer&Chanel

Channel 和 buffer 是 NIO 是兩個最基本的數據類型抽象。

Buffer:

–        是一塊連續的內存塊。

–        是 NIO 數據讀或寫的中轉地。

Channel:

–        數據的源頭或者數據的目的地

–        用于向 buffer 提供數據或者讀取 buffer 數據 ,buffer 對象的唯一接口。

–         異步 I/O 支持


Java NIO 新型的異步IO方法

圖1:channel和buffer關系

 


參考:http://www.iteye.com/topic/834447

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!