在java中使用deleteOnExit()方法

时间:2013-09-25 18:32:51

标签: java file-handling

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

4 个答案:

答案 0 :(得分:24)

delete()会立即删除文件,而deleteOnExit()在调用时不会删除文件。而是在程序结束时删除文件,或者更精确地终止虚拟机。

如果虚拟机终止不规则,deleteOnExit()无效。

答案 1 :(得分:4)

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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

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