我是学习Java中的IO和NIO的新手。
我不知道是什么
java.nio.file.Path
和java.nio.file.Paths
之间的差异?Path
和Paths
之间的差异?感谢任何解释。
答案 0 :(得分:0)
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
这样的Utility类的原因是多种因素的组合:
Path
是一个接口,因此无法直接调用其构造函数;因为它没有构造函数。String
是一个最终类,修改它的类可能比创建实用程序类更难以呈现。因此,虽然"/home/user/.config".toPath()
可能是一种有效的面向对象的处理方式,但遗留代码可以防止在不经过深思熟虑的情况下添加它。URI
的压力类似于上文String
所述的压力。当他们在NIO Path
类中添加时,他们希望审查他们的代码并将其集成到核心Java库中。
很容易让其他人添加到库中的东西具有以下特征:
如果他们采用修改String
和URI
的方法来获得getPath(...)
函数,那么他们就会增加将代码集成到Java标准库中的难度。< / p>