Java NIO教學


Java提供了一個叫作NIO(New I/O)的第二個I/O系統,NIO提供了與標準I/O API不同的I/O處理方式。它是Java用來替代傳統I/O API(自Java 1.4以來)。

它支援面向緩衝的,基於通道的I/O操作方法。 隨著JDK 7的推出,NIO系統得到了擴充套件,為檔案系統功能和檔案處理提供了增強的支援。 由於NIO檔案類支援的這些新的功能,NIO被廣泛應用於檔案處理。

NIO為Java程式員實現高速I/O,而不使用自定義本機程式碼。 NIO將填充,排放緩衝區等的時間性I/O活動移回作業系統,從而大大提高了操作速度。

Java NIO基本元件如下:

  • 通道和緩衝區(Channels and Buffers):在標準I/O API中,使用字元流和位元組流。 在NIO中,使用通道和緩衝區。資料總是從緩衝區寫入通道,並從通道讀取到緩衝區。

  • 選擇器(Selectors):Java NIO提供了「選擇器」的概念。這是一個可以用於監視多個通道的物件,如資料到達,連線開啟等。因此,單執行緒可以監視多個通道中的資料。

  • 非阻塞I/O(Non-blocking I/O):Java NIO提供非阻塞I/O的功能。這裡應用程式立即返回任何可用的資料,應用程式應該具有池化機制,以查明是否有更多資料準備就緒。

下面來看看非阻塞I/O的應用和作業系統介面:

讀者

本教學是專為Java NIO初學者而準備的,通過簡單的步驟幫助他們來了解和學習Java NIO基礎知識。 完成本教學的學習後,您將發現自己在Java NIO程式設計方面具有一定的專業知識水平,進而能更容易地學習Java NIO程式設計中更深層次的技術和知識。

前提條件

Java NIO程式設計類基於Java程式設計,所以如果你知道或熟悉Java語法,那麼將很容易學習Java NIO。 此外,如果您沒有Java專業知識,但如果您有其它任何其他程式設計語言(如C語言,C++或Python)的基礎,那麼也將有助於快速掌握Java NIO程式設計技術。

問題反饋

我們不能保證您在學習此Java NIO教學的過程中不會遇到任何問題。本教學中的講解,範例和程式碼等只是根據作者的理解來概括寫出。由於作者水平和能力有限,因此不保正所有編寫的文章都準確無誤。但是如果有遇到任何錯誤或問題,請反饋給我們,我們會及時糾正以方便後續讀者閱讀。