19

私のプログラムは現在使用しています

FileOutputStream output = new FileOutputStream("output", true);

while ループは、まだ作成されていない場合は出力ファイルを作成し、while ループの反復ごとにこのファイルにいくつかのデータを追加します。

 output.write(data).  

これはいいですし、私が欲しいものです。

プログラムを再度実行すると、ファイルの末尾に正確な情報が追加されるため、ファイルのサイズが 2 倍になります。これは私が望むものではありません。プログラムを再度実行する場合、ファイルを上書きしたいと思います。

4

3 に答える 3

33

このドキュメントは、渡すパラメーターがパラメーターであることを示唆していappendます。

署名は次のようになります

FileOutputStream(File file, boolean append)

false追加したくないので、そのパラメーターをに設定する必要があります。

FileOutputStream output = new FileOutputStream("output", false);
于 2013-07-30T21:36:50.460 に答える
17

プログラムを再度実行する場合、ファイルを上書きしたいと思います。

false2 番目の引数として渡して、 appendを falseに設定します。

FileOutputStream output = new FileOutputStream("output", false);

コンストラクターのドキュメントを確認してください。

2 番目の引数が true の場合、バイトはファイルの先頭ではなく末尾に書き込まれます。

于 2013-07-30T21:36:34.753 に答える
1

または、ファイルが存在する場合はファイルを削除してから、常にファイルを作成してジョブを完了することもできます。

于 2013-07-30T21:43:38.783 に答える