Java File Delete方法无法正常工作

时间:2019-01-29 01:09:59

标签: java java-io

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

这是我的伪代码。

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

我检查了/ tmp文件夹。文件不会被删除。我的头发掉下来了。有人可以给些建议吗?

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您的processing()方法在做什么?是否有机会大量执行String操作?是否将大量数据写入文件系统?当您看到此错误时,java堆栈跟踪会告诉您什么?您收到任何OOM错误吗?