当前位置:  开发笔记 > 编程语言 > 正文

Java无缘无故地锁定文件

如何解决《Java无缘无故地锁定文件》经验,为你挑选了1个好方法。

尽管在最终条款中关闭了流,但我似乎经常在使用Java时清理问题.File.delete()无法删除文件,Windows资源管理器也失败.运行System.gc()有时会有所帮助,但没有什么能够终止VM有助于始终如一,而且这不是一种选择.

有没有人有我可以尝试的其他想法?我在Windows XP上使用Java 1.6.

更新:删除了FLAC代码示例,如果我将代码隔离,则代码可以正常工作.

更新:更多信息,这发生在Apache Tomcat,Commons FileUpload用于上传文件,可能是罪魁祸首,我也使用Runtime.exec()在一个单独的进程中执行LAME来编码文件,但这似乎不太可能因为ProcessExplorer清楚地表明java.exe在文件上有一个RW锁定,LAME终止正常.

更新:我正在假设缺少close()或close()在我的代码或外部库中没有被调用.我只是找不到它!



1> Bogdan..:

您发布的代码看起来很好 - 它不应该导致您描述的问题.我知道你只发布了一段代码 - 你能尝试将这部分提取到一个单独的程序,运行它,看看问题是否仍然存在?我的猜测是代码中有一些其他地方new FileInputStream(path);可以正常关闭流.当您尝试删除文件时,可能只是在这里看到结果.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有