前端之家收集整理的这篇文章主要介绍了
强制java释放Java中的所有文件锁/句柄,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的
Java应用程序(这是相当多的
代码)执行大量的
文件操作.在我的应用程序中,我需要将
文件从一个位置移动到另一个位置,因此我正在使用JDK7中的Files.move
方法.
当我尝试这样做,我收到一个错误告诉我该文件正在使用中.我知道一个事实,这是我的代码锁定这个资源的一部分.
在调用移动/重命名我的文件的函数之前,如何强制我的Java应用程序释放所有的锁?
如果这是不可能的,是否有一个简单的方法来检查我的代码的哪个部分锁定文件?通过我的整个代码库来查找未封闭的文件句柄将是一个噩梦,考虑到代码的数量.
谢谢
File()对象不会锁定
文件,但FileStream(FileInputStream / FileOutputStream)会锁定它.所以你必须为你的Streams写一个HelperClass(例如Singleton),记录所有的Streams.
但是请注意,如果您的代码泄漏,那么修复该错误比关闭所有文件更好.
原文链接:https://www.f2er.com/java/124309.html