1.Files
類
要處理文件,有一個巧妙的實用程序類 — java.nio.file.Files
. 它有適合各種場合的方法。這個類的所有方法都是靜態的,並且對 Path 對象進行操作。有很多方法,所以我們只考慮最重要的方法:
方法 | 描述 |
---|---|
|
創建一個新文件,其路徑為path |
|
創建一個新目錄 |
|
創建多個目錄 |
|
創建一個臨時文件 |
|
創建一個臨時目錄 |
|
刪除一個文件或目錄,如果它是空的 |
|
複製文件 |
|
移動文件 |
|
檢查路徑是否是目錄而不是文件 |
|
檢查路徑是否是文件而不是目錄 |
|
檢查給定路徑中是否存在對象 |
|
返回文件大小 |
|
以字節數組的形式返回文件的全部內容 |
|
以字符串形式返回文件的全部內容 |
|
以字符串列表的形式返回文件的全部內容 |
|
將字節數組寫入文件 |
|
將字符串寫入文件 |
|
從給定目錄返回文件(和子目錄)的集合 |
2.創建文件和目錄
文件和目錄很容易創建。讓我們用一些例子說服自己:
代碼 | 筆記 |
---|---|
|
創建一個文件 |
|
創建一個目錄 |
|
創建一個目錄和所有必要的子目錄(如果它們不存在)。 |
3.複製、移動、刪除
複製、移動和刪除文件同樣簡單。這也適用於目錄,但它們必須是空的。
代碼 | 筆記 |
---|---|
|
複製文件 |
|
移動和重命名文件 |
|
刪除文件 |
4. 檢查文件的類型和存在
當你有別人提供的路徑時,你想知道它是文件還是目錄。一般來說,這樣的文件/目錄是否存在?
這也有特殊的方法。您還可以輕鬆找出文件的長度:
代碼 | 筆記 |
---|---|
|
|
|
|
|
|
|
|
5. 處理文件內容
最後,還有一系列的方法可以輕鬆讀取或寫入文件的內容。例子:
代碼 | 描述 |
---|---|
|
讀取文件內容作為字符串列表。 顯示字符串 |
6.獲取目錄內容
最有趣的方法仍然存在。它用於獲取給定目錄中的文件和子目錄。
我們正在談論newDirectoryStream()
返回一個特殊DirectoryStream<Path>
對象的方法。它有一個迭代器(!),您可以使用它來獲取給定目錄的所有文件和子目錄。
這比聽起來容易。
代碼 | 描述 |
---|---|
|
獲取包含文件列表的對象 遍歷文件列表 |
該DirectoryStream<Path>
對像有兩個屬性。首先,它有一個返回文件路徑的迭代器,我們可以在循環中使用這個對象for-each
。
其次,這個對像是一個數據流,所以它必須使用close()
方法顯式關閉,或者在try-with-resources
塊中聲明使用。
七、Files.newInputStream
方法
從 Java 5 開始,FileInputStream
和FileOutputStream
類已被棄用。它們的缺點之一是當創建這些類的對象時,會立即在磁盤上創建文件。並且所有與文件創建相關的異常都可能被拋出。
後來這被認為不是最好的決定。因此,建議使用java.nio.Files
實用程序類的方法來創建文件對象。
這是創建文件的舊方法和新方法之間的比較:
前 |
---|
|
後 |
|
並且有一個類似的替代品FileOutputStream
:
前 |
---|
|
後 |
|
GO TO FULL VERSION