我需要用Java阅读和处理一些大文件,我想知道,如果有一些明智的方法来保护文件,那么当我正在阅读和放大时,它不会被其他进程覆盖;处理它?</ p>
也就是说,某些方法可以将其设为只读,保持“开放”状态......
这将在Windows环境中完成。
BR, Touko
答案 0 :(得分:10)
你想要一个FileLock:
FileChannel channel = new RandomAccessFile("C:\\foo", "rw").getChannel();
// Try acquiring the lock without blocking. This method returns
// null or throws an exception if the file is already locked.
FileLock lock = channel.tryLock();
// ...
// release it
lock.release();
为简单起见,我省略了一个封装的try / finally块,但你不应该在你的生产代码中
答案 1 :(得分:0)
工作很好,遇到了一些问题:as the locking doesn't seem to be totally absolute。