程序终止时临时文件删除

时间:2016-03-05 03:45:25

标签: java

如果我为某些写操作创建一个临时文件,有没有办法在程序中指定在程序终止时自动删除它。

以下是用于创建文件的过程。

File tmp = File.createTempFile("foo", "tmp");
 System.out.println("Your temp file is " + tmp.getCanonicalPath());
 //doing something with the temporary file
writeDataInTemp(tmp.getCanonicalPath());

1 个答案:

答案 0 :(得分:1)

使用关闭钩子并自己动手: https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread)

(这可能就是库和框架的作用。它允许你定义一个在JVM终止时运行的函数)

你想在某个地方建立一个所有临时文件的列表(我建议你有一些很好的getTemporaryFile()函数来获取文件句柄并将名字添加到要杀死的东西列表中),然后在关机钩子中杀死它们。