我是Java中學習IO和NIO的新手。java中IO和NIO的路徑和路徑
我不知道什麼
- 是
java.nio.file.Path
和java.nio.file.Paths
之間的區別? - 是
Path
和Paths
之間的差額?
謝謝任何解釋。
我是Java中學習IO和NIO的新手。java中IO和NIO的路徑和路徑
我不知道什麼
java.nio.file.Path
和java.nio.file.Paths
之間的區別?Path
和Paths
之間的差額?謝謝任何解釋。
Path是一個表示路徑的類。任何你通常已經有Path
的地方都涉及到這裏的方法。
路徑是一組實用程序。這些實用程序會從其他類型的輸入中生成Path
對象。這些實用程序不需要提前Path
。它們是常用的常用代碼的便捷包裝,以減少對剪貼的需求。
下面是使用Paths
的示例:
/* I have a String, but need a Path */
Path path = Paths.get("/home/user/.config");
下面是使用Path
的示例:
/* I have a Path, but need a String */
String name = path.toString();
爲什麼需要像Paths
一個工具類的原因是一個數字的一個組合的因素:
Path
是一個接口,因此它的構造函數的直接調用是不可能的;因爲它沒有構造函數。String
是最後一個類,修改它的類可能會比創建實用類更難作爲替代。因此,雖然"/home/user/.config".toPath()
可能是一種有效的面向對象的處理方式,但遺留代碼可以防止在沒有更多考慮的情況下添加該方法。URI
的壓力與上述String
中所述的壓力類似。當他們添加到NIO Path
類中時,他們希望他們的代碼被檢查並集成到核心Java庫中。
的東西,很容易讓別人添加到庫具有以下特點:
如果他們把修改String
和URI
的方法有getPath(...)
功能,那麼他們會增加將他們的代碼集成到Java標準庫中的困難。
路徑是一個集合,如果'utilities',你引用'import java.io.file.paths'? – Songs
@歌曲我指的是'java.nio.file.Paths'「舊」io /文件包下沒有路徑。我還更新了這個問題,以瞭解與現有圖書館合作時所面臨的壓力。 –
[Path](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html)和[Paths](https://docs.oracle.com/) JavaSE的/ 8 /文檔/ API/JAVA/NIO /文件/ Paths.html)。 – Kayaman
@歌曲請密切關注你的軟件包名稱。沒有「基於流的io」或「java.io.file.Paths」類。包含「基於塊的io」傳輸的「新IO」位於java.nio.file.Paths下。基本上,「新IO」爲Java添加了兩件事:基於塊的傳輸和強大的Path系統。舊的「java.io」系統有一個Path系統,主要建立在字符串操作和File概念上(File不需要存在,可以是一個目錄)。 –