0

こんにちは、Java の File クラスを使用して、100,000 行を超える情報を含む txt ファイルを作成しています。私はフェドラLinuxを使用しています。ファイルが書き込まれている間、完全に完了するまで読み取りを許可したくありません。

ファイルを書き込む前にsetReadable(false)を設定し、最後にtrueに設定するとうまくいくと思いましたが、これを正しく行う方法を誰も知りませんでした

ありがとうございました。

4

2 に答える 2

1

.tmp 拡張子を付けて書き込み、終了したら実際の拡張子に移動/名前変更します

final File file = new File(filename + ".tmp");

// code to save the text to the file

file.renameTo(new File(filename+ ".txt")) 

.renameTo は、Linux でのアトミック アクションです。

于 2013-01-30T14:28:58.597 に答える
1

Apache からのトランザクションでそれを実装する必要があります。単一のトランザクションでファイルに書き込むことができます。コミットする前にベースファイルは存在しません

しかし、それを一人で行うこともできます。ファイルを別の場所に書き込み、完了したら移動します

于 2013-01-30T14:30:17.083 に答える