這可能類似於以前的帖子,但我想具體說明在網絡上使用鎖定而不是本地鎖定。我想寫一個文件到共享的位置,所以它可能會在網絡上(當然是Windows網絡,也許是Mac)。我想阻止其他人在寫它的同時閱讀這個文件的任何部分。這不會是一個高度併發的進程,文件通常不會超過10MB。網絡上的Java文件鎖定
我已閱讀FileLock
文檔和File
文檔,並且對於什麼是安全的和什麼是不安全的有些困惑。我想鎖定整個文件,而不是部分文件。
我可以使用FileChannel.tryLock()
,它在網絡上是否安全,還是取決於網絡類型?它是否可以在標準的Windows網絡上運行(如果有這樣的事情)。
如果這不起作用,創建零字節文件或目錄作爲鎖定文件,然後寫出主文件是最好的。爲什麼File.createNewFile()
文檔說不要使用這個文件鎖定?我很欣賞這受到比賽條件的限制,並不理想。