【发布时间】:2015-03-18 10:09:20
【问题描述】:
Path 类没有记录的构造函数,但可以通过它创建实例。 Paths.get( "...." ) 是 FileSystems.getDefault().getPath( "..." ) 的简写。那么有人可以解释一下这个设计决定吗?
【问题讨论】:
Path 类没有记录的构造函数,但可以通过它创建实例。 Paths.get( "...." ) 是 FileSystems.getDefault().getPath( "..." ) 的简写。那么有人可以解释一下这个设计决定吗?
【问题讨论】:
有人能解释一下这个设计决定吗?
这是因为 JSR 203 允许从多个 FileSystem 发出路径,这与 File 不同,File 始终链接到 JVM 所在的文件系统。在 JSR 203 中,这个文件系统被称为 默认文件系统。您可以使用 FileSystems.getDefault() 获取对它的引用。
您使用Paths.get() 从默认文件系统获取路径,该路径严格等同于FileSystems.getDefault().getPath()。如果您要从另一个文件系统获取Path,您将使用这个特定文件系统的.getPath()。
为了证明FileSystem 可以(几乎)任何东西,这里有一些不同来源的实现:
还有一些其他的。
【讨论】: