deleteOnExit的替代方案

时间:2011-04-25 18:25:28

标签: java

我想在每天说一次后删除一些文件。使用deleteOnExit()这是一个不错的选择吗?还有其他建议吗?

我有一些flash内容通过读取存储在web服务器root中的一些xml文件来呈现其状态。这些xmls是在运行中创建的。现在我想要删除这些文件。如果我可以使用它来管理它会更好的java

5 个答案:

答案 0 :(得分:3)

java.io.File.createTempFile(prefix, suffix);

让该操作系统的临时文件管理确定销毁文件的策略。

答案 1 :(得分:2)

就个人而言,我会编写一个脚本,通过你的目录来删除符合你标准的文件(例如24小时)并通过cron作业运行它。我可能会在服务器负载最低的时候运行它。

答案 2 :(得分:0)

deleteOnExit()的问题在于,如果您的应用程序崩溃,文件将永久保留。我会定期运行一个线程来清理临时目录(打开文件除外)。

答案 3 :(得分:0)

考虑使用Quartz来安排Java中的操作。您可以按定期计划扫描目录中超过24小时的文件,也可以为24小时后运行的每个文件创建新作业。

答案 4 :(得分:0)

绝对避免使用File.deleteOnExit。我有一个issue我在每次调用API时多次调用它。基本上,它将文件附加到要退出时清理的文件列表。 JVM从未退出,因为它在Web上下文中运行。所以,我有一堆文件的内存泄漏永远存在。设置完cronjob或者在完成后删除文件要好得多。