我是新来的java中的io和nio。
我想知道什么
-
java.nio.file.Path
和java.nio.file.Paths
?
之间的差异是 -
Path
和Paths
之间的区别是?
感谢任何解释。
路径是代表路径的类。您通常已经拥有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
类中添加时,他们希望对其代码进行审查并集成到Core Java库中。
很容易让其他人添加到库中具有以下特征:
- 您不会以已建立的库呼叫界面公开的方式弄乱库的现有部分(这样做会破坏库的用户,因为他们现在需要重写他们的程序)。
- 您有一个容易的支持计划(这很重要,因为您可能无法按时交付)
如果他们采取了修改String
和URI
具有getPath(...)
功能的方法,那么他们将增加将代码集成到Java标准库中的困难。