我发现Java文件锁定机制是一个真正的错误,因为它无法执行第一个锁定规则 - 阻止锁定调用!除非我错了 - 如果应用程序已经对文件保持锁定,则对lock()的调用将抛出异常,我知道在我的应用程序中就是这种情况.我在这里看了一些答案,不幸的是我没有使用Java 7.
有没有人有关于我如何处理等待独占文件锁而不将自己置于while(true)循环中的建议:)
在Aubin的回答后编辑(复制评论):
我想要做的是在将大文件复制到目录后再访问它,然后对其进行处理.我的代码很简单......
public boolean ifFileReady(File file) {
boolean ready = false;
FileLock lock = null;
FileChannel channel = null;
try {
channel = new RandomAccessFile(file, "rw").getChannel();
lock = channel.lock();
lock.release();
ready = true;
}
catch( IOException e ) {
// Always Here
}
finally
{
if (channel != null)
channel.close();
}
return ready;
}
Run Code Online (Sandbox Code Playgroud)
我从不阻挡锁.它总是抛出
| 归档时间: |
|
| 查看次数: |
3471 次 |
| 最近记录: |