Java NIO 新型的異步IO方法
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 支持
圖1:channel和buffer關系
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!