java.io.File vs java.io. files在新代码中是首选



在写SO的答案时,一个用户试图指出java.io.File不应该在新代码中使用,相反,他认为应该使用新的对象java.nio.Files;他链接到这篇文章。

现在我已经用Java开发好几年了,以前没有听说过这个论点;自从读了他的文章后,我一直在搜索,并没有找到很多其他的来源来证实这一点,我个人觉得文章中争论的许多观点都是薄弱的,如果你知道如何阅读它们,由File类抛出的错误通常会告诉你问题是什么。

随着我不断开发新代码,我的问题是:

这在Java社区中是一个活跃的争论吗?对于新代码,"文件"是否优于"文件"?两者之间的主要优点/缺点是什么?

你所链接的文档给出了答案:

Java .nio.file包为Java定义了接口和类虚拟机访问文件、文件属性和文件系统。此API可用于克服方法的许多限制java.io.File类。可以使用toPath方法来获取Path它使用File对象表示的抽象路径来定位文件。生成的Path可以与Files类一起使用更有效和广泛地访问额外的文件操作;文件属性和I/O异常来帮助诊断错误文件操作失败

File有一个较新的实现:Path。与一个建设者Paths.get("...")Files也有许多很好的实用函数,实现得更好(move代替有时失败的File.renameTo)。

Path维护它的文件系统。因此,您可以从zip文件系统("jar:file:..... .zip")中将一些路径复制到另一个文件系统,反之亦然。

File.toPath()可能有助于逐步过渡。

Files中的实用程序就转向了新的有利可图的类。

相关内容

最新更新