我是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不需要存在,可以是一个目录)。 –