java - Java 文件删除方法未按预期工作
问题描述
我必须处理数千个文件,但我的程序在 20 个文件后失败,除了“没有剩余空间”。
这是我的伪代码。
for (Task t: tasks) {
File f = t.createTempFile()
processing(f)
f.delete()
}
我检查了 /tmp 文件夹。文件没有被删除。我的头发都掉光了。有人可以给出一些建议吗?
PS:它应该具有创建文件的权限,因此它也应该具有删除权限。
解决方案
这可能是因为您在文件上仍有一些输入或输出流,而您忘记关闭它。
如果 JVM 本身(在任何线程中)仍然持有文件的输入或输出流,它不会被删除。
正如上面评论中所说,您也可以检查该方法的返回状态。
推荐阅读
- java - Hackerrank 说我的输出是错误的,即使输出完全匹配
- javascript - ESLint no-unused-vars 在不同的 React 项目中不一致
- jsf - 常规 XHTML inputText 标记是否对 JSF 中的 h:inputText 等 XML 实体自动转义?
- web-scraping - 使用 Google Chrome 扩展程序抓取网站
- c# - Lucene.NET 没有删除文档?
- powerbi - 如果没有过滤器,如何将卡设置为默认值?如何将默认过滤器设置为页面?
- ios - 带有分页的 UICollectionView。将第二个单元格保持在屏幕中央
- php - 致命错误:未捕获的错误:找不到类“Twig_Autoloader”
- sql - Excel vba 中的 ADODB 对象和 SQL 以匹配代码
- javascript - typescript编译后是否可以保留原始函数头