Не удается прочитать или записать из заблокированного файла в Java

Я заблокировал файл с помощью FileLock в Java, но теперь я не могу читать или писать из него. Что мне делать?


person Dylan Knowles    schedule 15.08.2012    source источник
comment
Определить не могу. Что происходит вместо этого?   -  person user207421    schedule 16.08.2012


Ответы (1)


Хотя у этой проблемы может быть много потенциальных решений, я обнаружил, что следующее работает довольно хорошо:

// Gets a readable and writable channel to your file.
FileChannel channel = new RandomAccessFile(yourFile, "rw").getChannel();

// Allows you to read from the file.
InputStream in = Channels.getInputStream(channel);

// Allows you to write to the file.
OutputStream out = Channels.getOutputStream(channel);

// Lock the file here as you see fit to prevent concurrency issues.
// As a concrete example, you could attempt to lock the file using "channel.tryLock()"
...

Когда я столкнулся с этой проблемой, я обнаружил, что эта проблема очень расстраивает, поэтому я решил поделиться своим решением с другими, кому оно может понадобиться.

person Dylan Knowles    schedule 15.08.2012