簡體   English   中英

Java中IO和NIO的路徑

[英]Path and paths of IO and NIO in java

我是新來學習Java中的IO和NIO的人。

我想知道

  • 是的區別java.nio.file.Pathjava.nio.file.Paths
  • 是的區別PathPaths

感謝您的解釋。

路徑是代表路徑的類。 通常您已經擁有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類的Utility類的原因是多種因素的組合:

  1. Path是一個接口,因此無法直接調用其構造函數。 因為它沒有構造函數。
  2. String是一個最終類,而在其中進行修改的類可能比創建一個實用程序類要困難得多。 因此,盡管"/home/user/.config".toPath()可能是一種有效的面向對象的處理方式,但是舊代碼阻止了添加而無需更多考慮。
  3. URI對它的壓力類似於上面在String上描述的壓力。

當他們添加到NIO Path類中時,他們希望對其代碼進行檢查並將其集成到核心Java庫中。

容易使其他人添加到庫中的東西具有以下特征:

  1. 您不會以已建立的庫調用接口公開的方式來處理庫的現有部分(這樣做會打亂庫的用戶,因為現在他們需要重寫程序)。
  2. 您有一個簡單的退出計划(這很關鍵,因為您可能無法按時交付)

如果他們采用將StringURI修改為具有getPath(...)函數的方法,那么他們將增加將代碼集成到Java標准庫中的難度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM