11

OK、テキストファイルに複数行を書き込むのに問題があります。

プログラムは実行されますが、毎回新しい行を使用することはありません

4回実行したい場合、テキストファイルは次のようになります。

a
b
c
d

代わりに、次のようになります。

d

この問題を解決する方法を誰が知っていますか?すべてのインポートが正しくインポートされます。

ソース(少し編集されています。すべてが適切に定義されていると仮定します):

import java.io.*;
public class Compiler {
public static void main (String args[]) throws IOException
{
    //there's lots of code here
    BufferedWriter outStream= new BufferedWriter(new FileWriter("output.txt"));
    outStream.newLine();
    outStream.write(output);
    outStream.close();
}

}
4

3 に答える 3

20

のインスタンスを作成するときはFileWriter、そのインスタンスの最後に追加していることを確認してください。これは、2番目のパラメーターとして追加をとるこの特定のFileWriterコンストラクターを使用して実行できます。booleanこれbooleanFileWriter、ファイルを上書きするのではなく、ファイルの最後に追加するように指示します。

BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true));
于 2012-05-29T18:02:58.907 に答える
6

デフォルトでFileWriterは、ファイルは上書きされます。あなたがしたいと思うかもしれないことは次の方法でリーダーを定義することです:
new FileWriter("encoded.txt", true)
この方法でファイルは上書きされる代わりに追加されます。 お役に立てれば!


于 2012-05-29T18:04:22.887 に答える
0

このコードが何をするのかわかりません。入力文字列の長さが1文字を超える場合は、ループ内でFileWriterを閉じてから、もう一度書き込みを試みるため、エラーがスローされます。

私はあなたの質問を次のように解釈しています:あなたはなぜ最新の出力だけがファイルにあるのか疑問に思っています。その場合は、FileWriterを追加モードで作成しなかったためです。FileWriterで使用できるさまざまなコンストラクターを確認し、ファイルに追加できるコンストラクターを使用します。

于 2012-05-29T18:10:05.213 に答える