如何在使用Java读取和处理文件时防止文件被覆盖?

Tou*_*uko 4 java file-io filelock file-processing

我需要用Java阅读和处理一些大文件,我想知道,如果有一些明智的方法可以保护文件,当我正在阅读和处理它时,它不会被其他进程覆盖?

也就是说,某种方式使它成为只读,保持"开放"或某事......

这将在Windows环境中完成.

br,Touko

dfa*_*dfa 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();
Run Code Online (Sandbox Code Playgroud)

为简单起见,我省略了一个封装try/finally块,但你不应该在你的生产代码中