对于用Java 7编写的新应用程序,是否有任何理由再使用Java .io. file对象,或者我们可以认为它已弃用?

我相信java.nio.file.Path可以做java.io.File可以做的所有事情,甚至更多。


当前回答

我们可以认为它已弃用吗?

不,您不能认为它已弃用,除非在File Javadoc中如此标记。

其他回答

是的,但是许多现有的api,包括Java7自己的标准api,仍然只能使用File类型。

对于用Java 7编写的新应用程序,是否有任何理由使用 java.io.File对象是否已经弃用?

这有点像在说:“拿破仑应该入侵俄罗斯吗?还是这些球芽甘蓝真的很好吃?”

至于问题的第二部分,你确实可以认为是不可取的。截至2018年1月,它没有被弃用。但没有什么能阻止你这么想。这是否会给你带来今生或来世的好处还很难说。

众所周知,java中的类。nio包适用于路径实例,而不是文件实例。如果使用java,建议使用Path类。只要可能,蔚来汽车。

现在,有时您将不得不使用File类。这是因为方法或构造函数希望将File实例作为参数,但当您有选择时,请确保使用Path而不是File。

Java.io.File未弃用。是的,java.nio.file.Path更好,但只要仍然有大量的程序和教科书使用Java.io。文件,如果只是出于遗留的原因,它不应该被认为已弃用,它太重要了。这样做只是在工作中扔一个扳手,没有任何整体利益。例如,Android框架使用File来实现它的一些基本文件处理特性,还有许多其他的事情要做。

长话短说:

java.io.File很可能永远不会被弃用/不支持。也就是说,java.nio.file. path是更现代的java.nio.file库的一部分,它能做java.io.File能做的一切,但通常以更好的方式,而且更多。

对于新项目,使用Path。

如果你需要一个File对象,调用Path#toFile()

从文件迁移到路径

这个Oracle页面突出了不同之处,并将java.io.File功能映射到java.nio.file lib(包括Path)功能

Janice J. Heiss和Sharon Zakhour的文章,2009年5月,讨论JDK 7中的NIO.2文件系统