在围绕SO撰写答案时,用户试图指出java.io.File
不应该在新代码中使用,而是他认为 new 对象java.nio.Files
应该是用来代替;他链接到this article。
现在我已经用Java开发了好几年了,之前没有听过这个论点;自从阅读他的帖子以来我一直在寻找,并且没有找到许多证实这一点的其他来源,而且就个人而言,我觉得文章中提出的许多观点都很薄弱,如果你知道如何阅读它们,那么文件类通常会告诉您具体问题。
当我不断开发新代码时,我的问题是:
答案 0 :(得分:13)
您链接的documentation会给出答案:
java.nio.file包定义了Java的接口和类 用于访问文件,文件属性和文件系统的虚拟机。 该API可用于克服许多限制 java.io.File类。 toPath方法可用于获取Path 它使用File对象表示的抽象路径来定位 文件。生成的Path可以与Files类一起使用 更高效,更广泛地访问其他文件操作, 文件属性和I / O异常有助于诊断错误 对文件的操作失败。
答案 1 :(得分:10)
chrome://inspect
有一个较新的实现:File
。使用构建器Path
。而且Paths.get("...")
有很多很好的实用函数,也有更好的实现(Files
而不是有时失败的move
)。
File.renameTo
维护其文件系统。因此,你可以复制一个zip文件系统(" jar:file:.....。zip")到另一个文件系统的一些路径,反之亦然。
Path
可能有助于增量转换。
仅File.toPath()
中的实用程序就可以转移到更有利可图的新类。
答案 2 :(得分:2)
我会说,"首选"。相反,我建议您查看应用程序所需的功能,并使用java.io.File
或java.nio.Files
中哪些更符合要求。
答案可能是平局,或java.nio.Files
更好。但这取决于你或你的团队,而不是其他一些程序员。
这是Java社区中的一个活跃参数吗?
有些人会争论任何事情。但我会说社区(一般而言)有更重要的问题。