首页 > 解决方案 > Java 文件删除方法未按预期工作

问题描述

我必须处理数千个文件,但我的程序在 20 个文件后失败,除了“没有剩余空间”。

这是我的伪代码。

for (Task t: tasks) {
    File f = t.createTempFile()
    processing(f)
    f.delete()
}

我检查了 /tmp 文件夹。文件没有被删除。我的头发都掉光了。有人可以给出一些建议吗?

PS:它应该具有创建文件的权限,因此它也应该具有删除权限。

标签: javajava-io

解决方案


这可能是因为您在文件上仍有一些输入或输出流,而您忘记关闭它。
如果 JVM 本身(在任何线程中)仍然持有文件的输入或输出流,它不会被删除。
正如上面评论中所说,您也可以检查该方法的返回状态。


推荐阅读