强制java释放Java中的所有文件锁/句柄

前端之家收集整理的这篇文章主要介绍了强制java释放Java中的所有文件锁/句柄前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 Java应用程序(这是相当多的代码)执行大量的文件操作.在我的应用程序中,我需要将文件从一个位置移动到另一个位置,因此我正在使用JDK7中的Files.move方法.

当我尝试这样做,我收到一个错误告诉我该文件正在使用中.我知道一个事实,这是我的代码锁定这个资源的一部分.

调用移动/重命名我的文件函数之前,如何强制我的Java应用程序释放所有的锁?

如果这是不可能的,是否有一个简单的方法来检查我的代码的哪个部分锁定文件?通过我的整个代码库来查找未封闭的文件句柄将是一个噩梦,考虑到代码数量.

谢谢

解决方法

File()对象不会锁定文件,但FileStream(FileInputStream / FileOutputStream)会锁定它.所以你必须为你的Streams写一个HelperClass(例如Singleton),记录所有的Streams.

但是请注意,如果您的代码泄漏,那么修复该错误关闭所有文件更好.

猜你在找的Java相关文章