我正在寫一個Java應用程序,每秒使用FileInputStream讀取一個文件(它在一個單獨的線程中的無限循環內,然後睡1秒)如何禁用Java應用程序中的另一個應用程序打開的文件的文件鎖定
該文件在另一個應用程序中打開。
當我嘗試在另一個應用程序中保存該文件時,出現錯誤消息表明該文件正在被另一個程序使用。
我讀的FileLock API,並實現鎖和寫作和閱讀發行:
FileOutputStream fos = new FileOutputStream(file);
FileLock fileLock = fos.getChannel().lock();
if (fileLock != null) {
fos.write(fileContent);
fileLock.release();
}
fos.close();
如何禁用文件鎖在文件2個應用程序訪問?
謝謝!
編輯:我在WINDOWS 7上調試
爲什麼要禁用代碼明確獲取的鎖定?另外,如果鎖在讀取端正確地放置,這應該不成問題。儘管(try-catch-finally),你應該使用正確的成語來鎖定。 – 2012-04-12 09:02:34
我想禁用鎖,因爲我正在監視另一個文件正在使用的外部文件。 – nurxyz 2012-04-12 09:04:36
該文件是否始終鎖定?如果是,那麼通過調用f.canWrite()來檢查在寫入之前是否可以寫入;方法? – Phani 2012-04-12 09:05:03