Java 7:path与文件

对于使用Java 7编写的新应用程序,是否有任何理由使用java.io.File对象,或者我们可以考虑弃用它?

我相信java.nio.file.Path可以完成java.io.File可以完成的所有工作。

长话短说:

java.io.File很可能永远不会被弃用/不受支持。 也就是说, java.nio.file.Path是更现代的java.nio.file lib的一部分,并且可以执行java.io.File所有function,但通常情况下会更好,然后是一些。

对于新项目,使用Path

如果你需要传统的File对象,只需调用Path#toFile()

从文件迁移到path

这个Oracle页面突出了差异,并将java.io.File functionality映射到java.nio.file lib (including Path) functionality

文章由Janice J. Heiss和Sharon Zakhour于2009年5月在JDK 7上讨论NIO.2文件系统

我们可以认为它已经过时了吗?

除非在Javadoc中如此标记。

检查这篇文章关于更多信息 – http://www.oracle.com/technetwork/articles/javase/nio-139333.html

基本上file.Path将是现在的方式,但正如广为人知的Java人往往保持后向兼容性,所以我想这就是为什么他们离开了它。

是的,但是许多现有的API,包括Java7自己的标准API,仍然只能使用Filetypes。

是的,java.nio.file.Path更好,但只要还有大量使用Java.io.File的程序和教科书,如果仅出于遗留原因,则不应视为弃用。 这样做只会把一把扳手放在作品中,而没有任何好处。

对于使用Java 7编写的新应用程序,是否有任何理由使用java.io.File对象,或者我们可以考虑弃用它?

这有点像说:“拿破仑入侵俄罗斯, 还是这些抱子甘蓝好吃?

至于问题的第二部份,你的确可以认为是不赞成的。 截至2017年3月,尚未弃用。 但是没有什么可以阻止你这么考虑的 。 是否会使你在今生或下一次获得好处是不可能的。