ファイルのセットがあります。ファイルのセットは、NTFS 共有からは読み取り専用であるため、多くのリーダーを持つことができます。各ファイルは、書き込みアクセス権を持つ 1 つのライターによって時々更新されます。
次のことを確認するにはどうすればよいですか。
- 書き込みが失敗した場合、以前のファイルがまだ読み取り可能であること
- 読者は単一の作家を保持することはできません
私はJavaを使用していますが、現在の解決策は、ライターが一時ファイルに書き込み、File.renameTo()
. 問題は NTFS にあり、renameTo
ターゲット ファイルが既に存在する場合は失敗するため、自分で削除する必要があります。しかし、ライターがターゲット ファイルを削除してから失敗した場合 (コンピューター クラッシュ)、読み取り可能なファイルがありません。
nio の FileLock は同じ JVM でしか機能しないため、私には役に立ちません。
Java を使用して多くのリーダーでファイルを安全に更新するにはどうすればよいですか?