1.Path
類
如果您想編寫一個程序來處理磁盤上的文件,那很容易。Java 有很多類可以幫助您處理文件本身及其內容。
Java 的早期版本使用File
和之類的類FileInputStream
來處理文件。但是,該類File
現已棄用,不建議使用。當然,你可能仍然會在代碼、方法參數或類構造函數中遇到它。
從一開始,我們將開始學習如何使用該類處理文件Path
。Path
是替換的類File
。它更安全、更高效。
Path
班級
從技術上講,Path
它不是一個類——它是一個接口。Path
這樣做是為了允許為每個操作系統(和文件系統)編寫類的後代。
Windows 有一個寫入文件路徑的標準,而 Linux 有另一個。當然,世界上還有很多其他的操作系統,每個都有自己的標準。
這就是為什麼Path
在處理文件的方法中到處都使用接口的原因,儘管實際上工作是通過其後代類進行的:WindowsPath
, UnixPath
, ...
創建Path
對象
要創建一個Path
對象(實際上是子類的對象WindowsPath
),您需要使用如下語句:
Path name = Path.of(path);
其中name
是變量的名稱Path
,path
是文件(或目錄)的路徑,包括文件(或目錄)的名稱。並且of
是類的靜態方法Path
。
如果程序在 Windows 上運行,則該of()
方法用於創建對象。WindowsPath
如果程序在 Linux 上運行,則UnixPath
創建對象。您不能使用Path
像.new Path()
例子:
代碼 | 筆記 |
---|---|
|
文件路徑 |
|
目錄路徑 |
文件(或目錄)不需要存在才能使有效Path
對象存在。也許你只是想創建一個文件......一個Path
對象就像一個加強版String
:它沒有綁定到磁盤上的特定文件——它只是在磁盤上存儲一個特定的路徑。就是這樣。
Path
2.類型的方法
該Path
接口有很多有趣的方法。下表列出了最有趣的一些。
方法 | 描述 |
---|---|
|
返回父目錄 |
|
返回沒有目錄的文件名 |
|
從路徑返回根目錄 |
|
檢查當前路徑是否是絕對路徑 |
|
將路徑轉換為絕對路徑 |
|
刪除目錄名稱中的通配符。 |
|
從絕對路徑和相對路徑構造一個新的絕對路徑。 |
|
從兩個絕對路徑中獲取一個相對路徑。 |
|
檢查當前路徑是否以給定路徑開頭 |
|
檢查當前路徑是否以給定路徑結束 |
|
/ 使用作為分隔符將路徑拆分為多個部分。返回零件數。 |
|
/ 使用作為分隔符將路徑拆分為多個部分。按其索引返回一個部分。 |
|
/ 使用作為分隔符將路徑拆分為多個部分。返回對應於給定間隔的子路徑。 |
|
將對象轉換Path 為已棄用的File 對象 |
|
將對象轉換Path 為URI 對象 |
以下是對現有方法的簡要說明。
3.將路徑分成幾部分
該getParent()
方法返回指向當前路徑的父目錄的路徑。不管這個路徑是目錄還是文件:
代碼 | 價值 |
---|---|
|
|
|
|
|
|
該getFileName()
方法返回單個文件(或目錄)名稱——無論最後一個定界符之後是什麼:
代碼 | 價值 |
---|---|
|
|
|
|
|
|
該getRoot()
方法返回根目錄的路徑:
代碼 | 價值 |
---|---|
|
|
4.絕對路徑和相對路徑
有兩種類型的路徑:絕對路徑和相對路徑。絕對路徑從根目錄開始。對於 Windows,這可能是c:\
文件夾;對於 Linux —/
目錄
相對路徑相對於某個目錄是有意義的。也就是說,它就像路的盡頭,但沒有開始。您可以將相對路徑轉換為絕對路徑,反之亦然
boolean isAbsolute()
方法
該方法檢查當前路徑是否是絕對路徑
代碼 | 價值 |
---|---|
|
|
|
|
Path toAbsolutePath()
方法
將路徑轉換為絕對路徑。如有必要,將當前工作目錄添加到其中:
代碼 | 價值 |
---|---|
|
|
|
|
Path normalize()
方法
在路徑中,可以不用目錄名,而寫“..”,意思是返回一個目錄。規範化消除了這些東西。例子:
代碼 | 價值 |
---|---|
|
|
|
|
Path relativize(Path other)
方法
該relativize()
方法允許您構建“路徑之間的差異”:一條路徑相對於另一條路徑
代碼 | 價值 |
---|---|
|
|
|
|
|
非法參數異常: 這兩條路徑有不同的“根”(不同的磁盤) |
Path resolve(Path other)
方法
該resolve()
方法的作用與 相反relativize()
:它從絕對路徑和相對路徑構建新的絕對路徑。
代碼 | 價值 |
---|---|
|
|
|
|
toFile()
方法
該方法返回一個已棄用的File
對象,該對象存儲與該對象相同的文件路徑Path
。
toURI()
方法
該方法將路徑轉換為標準URI,並返回一個包含文件路徑的對象:
文件路徑 | 文件的 URI |
---|---|
|
|
GO TO FULL VERSION