【问题标题】:use of deleteOnExit() method in javajava中deleteOnExit()方法的使用
【发布时间】:2013-10-01 11:54:09
【问题描述】:

Java中java.io.File类中的delete()deleteOnExit()方法有什么区别?

【问题讨论】:

    标签: java file-handling


    【解决方案1】:

    delete() 将立即删除文件,而 deleteOnExit() 不会删除文件,当您调用它时。当程序结束或更准确地说是虚拟机终止时,文件被删除。

    如果虚拟机不定期终止,deleteOnExit() 无效。

    【讨论】:

      【解决方案2】:

      File.delete() 方法删除文件,如果删除失败则抛出异常。例如,如果文件不存在,则会引发 NoSuchFileException。 要删除目录,该目录必须为空。 如果文件被成功删除,此方法返回 true,否则返回 false(可能是由于读/写权限)。 当您想/直接删除已知文件时使用此方法。

      File.deleteOnExit() 此方法在虚拟机终止时删除抽象路径名定义的文件或目录。文件或目录按照注册时的相反顺序删除。 该方法不返回任何值。 这在程序执行期间生成临时文件时很有用。

      【讨论】:

        【解决方案3】:

        File.deleteOnExit() 文档未引导。我在一个项目中使用它,实际上它通过在垃圾收集器运行时删除文件来工作(如果没有引用文件的对象)。

        【讨论】:

        • deleteOnExit() 与垃圾收集器无关。你甚至可以从它的代码中看到它:你的文件只是被添加到虚拟机终止时应该删除的文件列表中。
        【解决方案4】:

        Delete() 返回布尔值删除此抽象路径名表示的文件或目录。

        deleteOnExit() 返回 void 请求在虚拟机终止时删除此抽象路径名表示的文件或目录。

        【讨论】:

          猜你喜欢
          • 2015-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-19
          • 2018-08-20
          • 1970-01-01
          • 1970-01-01
          • 2013-09-20
          相关资源
          最近更新 更多