如何锁定,文本文件打开阅读?

时间:2012-04-10 15:40:02

标签: java file bufferedreader fileinputstream filelock

我想在我的程序中锁定我的输入文本文件,所以如果下一次出现的程序在同一个文件上运行就会崩溃(抛出异常)。 我知道我可以使用“java.nio.channels.FileLock”锁定文件,但只有当文件打开才能写入时,我才可以打开文本文件,只能用于阅读。我不想使用“RandomAccessFile”来读取文件,因为它太慢而且我的文件很大(10gb)。 现在我用这个wy来阅读我的文件:

FileInputStream fstream = new FileInputStream(this.inputFileName);  
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));  

我认为这是阅读文本文件的快捷方式。如何锁定我的文本输入文件?

1 个答案:

答案 0 :(得分:1)

  

我知道我可以使用“java.nio.channels.FileLock”锁定文件,但只有当文件打开才能写入时,

AFAIK,这是不正确的。

您可以获取文件或已打开以供阅读的文件区域的FileLock。问题是,这只能保证阻止另一个Java应用程序获取重叠的FileLock。如果其他应用程序没有尝试获取锁定,那么它可能无论如何都能够读取该文件。 (确切的语义是特定于平台的。)