gpt4 book ai didi

java - 如何在不截断文件的情况下检查文件锁?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:45 25 4
gpt4 key购买 nike

我最近在我的下载器异步任务中添加了文件锁:

FileOutputStream file = new FileOutputStream(_outFile);
file.getChannel().lock();

下载完成后,file.close()释放锁。

从一个名为 BroadcastReceiver(不同的线程),我需要浏览文件并查看哪些已下载,哪些仍处于锁定状态。我从 trylock 开始:

for (int i=0; i<files.length; i++) {
try {
System.out.print((files[i]).getName());
test = new FileOutputStream(files[i]);
FileLock lock = test.getChannel().tryLock();
if (lock != null) {
lock.release();
//Not a partial download. Do stuff.
}
} catch (Exception e) {
e.printStackTrace();
} finally {
test.close();
}
}

不幸的是,我在创建 FileOutputStream 时看到文件被截断(0 字节)。 我设置为追加,但是锁好像没有生效,都好像解锁了(完全下载)

是否有另一种方法来检查当前是否对文件应用了写锁定,或者我在这里使用了错误的方法?另外,有没有办法从 ADB 终端或 Eclipse 调试文件锁?

最佳答案

这些都行不通。检查 Javadoc。锁代表整个进程(即 JVM)持有,而不是由单个线程持有。

关于java - 如何在不截断文件的情况下检查文件锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com