Java 文件删除方法未按预期工作

标签 java java-io

我必须处理数千个文件,但我的程序在处理 20 个文件后失败,但出现“No Space Left”异常。

这是我的伪代码。

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

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

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

最佳答案

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

关于Java 文件删除方法未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412513/

相关文章:

java - ActiveMQ 消息组消费者跨多个队列选择?

java - Android 游戏(Llama 或 Duck)setContentView 上内存不足

java - 使用 Java 的 File.delete() 方法

java - 减少 java 代码中打开文件的数量

Java:如何按文件名而不是扩展名过滤传入文件?

java - java中返回变量作用域遇到问题

java - 单击 JavaFX 中的超链接时,应在浏览器中打开相关 URL

java - 在 AndEngine 中变换主体时崩溃

java - 为什么 System.out.println() 中不需要 java.io.PrintStream?

java - 删除共享文件spring MVC