Java輸入/輸出教學

Java輸入/輸出(I/O)處理從源讀取數據並將數據寫入目標。通常,讀取存儲在檔中的數據或使用I/O將數據寫入到檔中。

java.iojava.nio包中包含處理輸入/輸出的Java類。java.io包具有執行I/O的類。java.nio包是新的I/O包。

java.io包中的類都與基於流的I/O操作有關。 基於流的I/O使用流在數據源和Java程式之間傳輸位元組數據。

Java程式每次從一個位元組讀取或寫入一個位元組。這種執行I/O操作的方法很慢。流可以用於單向數據傳輸。 輸入流只能將數據從數據源傳輸到Java程式,而輸出流只能將數據從Java程式傳輸到數據目標。

新輸入/輸出(NIO)解決了基於流的I/O中的慢速問題。在NIO中處理I/O操作的通道和緩沖區。一個通道就像一個流。它表示數據源和Java程式之間的連接。

通道提供雙向數據傳輸工具,可以使用通道來讀取數據以及寫入數據。可以獲得只讀通道,只寫通道或讀寫通道。緩衝區是有界數據容器,具有確定其可能包含數據的上限固定容量。

在基於流的I/O中,可直接將數據寫入流。 在基於通道的I/O中將數據寫入緩衝區,並將該緩衝區傳遞到將數據寫入數據目標的通道。

當從數據源讀取數據時,向一個通道傳遞一個緩衝區。通道將數據從數據源讀入緩衝區。

Java 7引入了新的輸入/輸出API,它提供了一個新的I/O API。 它提供了原始檔I/O API中缺少的一些功能。它向Java類庫添加了三個包:java.nio.filejava.nio.file.attributejava.nio.file.spi

新的輸入/輸出API以統一的方式處理所有檔系統。新輸入/輸出API提供的檔系統支持是可擴展的。新的輸入/輸出API支持所有檔系統上的基本檔操作(複製,移動和刪除)。它支持符號鏈接。

它支持訪問檔系統和文件的屬性。可以創建一個監視服務來監視目錄上的任何事件,例如添加新檔或子目錄,刪除檔等。


開始學習 >> :