こんにちは、Java の File クラスを使用して、100,000 行を超える情報を含む txt ファイルを作成しています。私はフェドラLinuxを使用しています。ファイルが書き込まれている間、完全に完了するまで読み取りを許可したくありません。
ファイルを書き込む前にsetReadable(false)を設定し、最後にtrueに設定するとうまくいくと思いましたが、これを正しく行う方法を誰も知りませんでした
ありがとうございました。
こんにちは、Java の File クラスを使用して、100,000 行を超える情報を含む txt ファイルを作成しています。私はフェドラLinuxを使用しています。ファイルが書き込まれている間、完全に完了するまで読み取りを許可したくありません。
ファイルを書き込む前にsetReadable(false)を設定し、最後にtrueに設定するとうまくいくと思いましたが、これを正しく行う方法を誰も知りませんでした
ありがとうございました。
.tmp 拡張子を付けて書き込み、終了したら実際の拡張子に移動/名前変更します
final File file = new File(filename + ".tmp");
// code to save the text to the file
file.renameTo(new File(filename+ ".txt"))
.renameTo は、Linux でのアトミック アクションです。
Apache からのトランザクションでそれを実装する必要があります。単一のトランザクションでファイルに書き込むことができます。コミットする前にベースファイルは存在しません
しかし、それを一人で行うこともできます。ファイルを別の場所に書き込み、完了したら移動します