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

我需要使用Java来读取和处理一些较大的文件,并且我想知道,是否有某种明智的方法来保护文件,使其在我读取和处理文件时不会被其他进程覆盖?

也就是说,可以通过某种方式将其设为只读,使其保持“打开”状态或类似的方式。

这将在Windows环境中完成。

br,Touko

回答:

你想要一个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块,但您不应该在生产代码中使用

以上是 使用Java读取和处理文件时,如何防止文件被覆盖? 的全部内容, 来源链接: utcz.com/qa/417028.html

回到顶部