Java中 java.io.File 类中的 delete()和 deleteOnExit()方法有什么区别?
答案 0 :(得分:24)
delete()会立即删除文件,而deleteOnExit()在调用时不会删除文件。而是在程序结束时删除文件,或者更精确地终止虚拟机。
如果虚拟机终止不规则,deleteOnExit()无效。
答案 1 :(得分:4)
如果删除失败,File.delete()方法会删除文件或引发异常。例如,如果文件不存在,则抛出NoSuchFileException。 要删除目录,该目录必须为空。 如果文件成功删除,则此方法返回true,否则返回false(可能是由于读/写权限)。 当您要直接删除已知文件时使用此方法。
File.deleteOnExit() 此方法在虚拟机终止时删除由抽象路径名定义的文件或目录。文件或目录在注册时以相反的顺序删除。 该方法不返回任何值。 在程序执行期间生成临时文件时这很有用。
答案 2 :(得分:3)
File.deleteOnExit()文档未通过领先。我在项目中使用它,实际上它通过在垃圾收集器运行时删除文件(如果没有引用文件的对象)来工作。
答案 3 :(得分:1)
Delete()返回boolean删除此抽象路径名表示的文件或目录。
deleteOnExit()返回void请求在虚拟机终止时删除此抽象路径名表示的文件或目录。