2009-06-18 13 views
0

を助けて...私は、ファイルと呼ばれるてFileWriterを宣言し、私はそれがループのために、以下を経る必要があり:のJavaて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"); 
} 

それの終わりにSystem.out.printlnコマンドは私が期待しているものを出力しますが、ファイルは途中で途切れます... System.outのすべてを印刷するのではなく、途中で停止します。なぜ誰がそれをするのか知っていますか?私は何か間違っているのですか?

+0

投稿をRedditに書き込みますか? :D – CookieOfFortune

答えて

5

完了したらFileWriterclose()と電話する必要があります。これにより、すべての出力が実際にディスクに書き込まれるようになります(そうでなければバッファに残される可能性があります)。

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ブロックになります。)

+0

ありがとう、これは働いた。 – wolfPack88

+0

技術的にはflush()は欠けていましたが、close()はどんな場合でも良いアイデアです。 –

+0

はい、私はJavadocsがそれを明確にしていると思います(そして、私は答えを混乱させたくありませんでした)。 –

3

追加してみてください:

file.close(); 

close()方法の説明は言う:

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

+0

ありがとう、これは働いた。 – wolfPack88

関連する問題