0

わかりました...かなり興味深いエラーが発生しました... file という名前の FileWriter を宣言し、次の for ループを通過させます。

for (int i = 0; i < a.radtot; i++) {
    file.write("" + i * a.rstep);

    for (int n = 0; n < a.timetot; n++) {
        file.write("\t " + T[n][i]);
        System.out.println(T[n][i] + " " + n + " " + i);
    }

    file.write("\n");
}

その最後に、System.out.println コマンドは私が期待するものを出力しますが、ファイルは途中で途切れます...同様に、System.out が行うすべてを出力する代わりに...途中で停止します。なぜそれがそれをするのか誰かがたまたま知っていますか?私は何か間違ったことをしていますか?

4

2 に答える 2

5

close()使い終わったら、を呼び出す必要がありFileWriterます。これにより、すべての出力が実際にディスクに書き込まれます (それ以外の場合はバッファーに残される可能性があります)。

for (int i = 0; i < a.radtot; i++) {
    file.write("" + i * a.rstep);

    for (int n = 0; n < a.timetot; n++) {
        file.write("\t " + T[n][i]);
        System.out.println(T[n][i] + " " + n + " " + i);
    }

    file.write("\n");
}
file.close(); // <-- Add this

(簡潔にするために例外処理を省略したと仮定しているので、同じことをしました。close()通常、finally常に実行されるようにするためにブロック内にあります。)

于 2009-06-18T21:21:08.923 に答える
3

追加してみてください:

file.close();

close()メソッドの説明には次のように書かれています。

ストリームを閉じて、最初にフラッシュします。

于 2009-06-18T21:21:10.140 に答える