6

私は次のコードを持っています

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
H.print(split[split.length - 2]);
H.print("END");

ただし、txtを調べると、最後のテキストは「END」ではなく、文字列内の単語の一部です。「レパ」です

私がこれをするとき

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
System.out.print(split[split.length - 2]);

私が得るテキストの最後のビットは数字「49」です-これは正しいです。

PrintWriterが文字列を完全に書き出していないようです。しかし、私がこれを行うとき

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
H.print(split[split.length - 2]);
H.println(pdfInText)://Another string
H.print("END");

「元の」テキストは実際に終了します-これは何ですか?

4

1 に答える 1

15

閉じますPrintWriterか?そのjavadocから

PrintStreamクラスとは異なり、自動フラッシュが有効になっている場合は、改行文字が出力されるたびではなく、println()メソッドの1つが呼び出されたときにのみ実行されます。println()メソッドは、改行文字ではなく、プラットフォーム独自の行区切り文字の概念を使用します。

PrintWriter(FileWriterではなく)閉じた場合はflush()、印刷後にアフターを試して、それを強制します。

于 2012-12-10T18:41:27.480 に答える