2011-06-13 12 views
0

私はここで私の知恵の終わりです。私は、以下のものを使用して、ファイル内の行の数千を印刷しようとしているjava - FileWriterとBufferedWriterを持つPrintWriter

:私はしてFileWriterで、それゆえ、真の引数を追加していますので、

 BufferedWriter bw = new BufferedWriter(new FileWriter(fileName, true)); 

     PrintWriter pw = new PrintWriter(bw, true); 

ファイルがすでにテキストで構成されています。

最後の2時間は困惑しているようですが、最初の10〜15%はファイルに書き込まれるのが85〜90%程度です。

私はコンソールでそれを印刷すると、すべての行が印刷されるので、ロジックの面では何も問題はありません。

ここに何か不足していますか?

すべての出力が印刷された後でのみ、pw.close()を実行します。

+0

コードをもう少し投稿できますか?あなたはpw.flush()を試すことができますか?違いが出るかどうかは分かりませんが、 – Sai

+0

あなたの説明から何も間違っているようです。 – MeBigFatGuy

+0

@Sai、彼は自動フラッシュが有効になっています。 – mre

答えて

0

pw.close()の前に、おそらくすべてのストリームが書き出されるようにflush()を呼び出す必要があります。

+0

私はすでにpw.flush()を試しています。私もPrinterWriterのコンストラクタでautoFlush = trueを設定しています – kkudi

+0

私が理解していないのは、最初の10%だけが書き込まれず残りが残っている理由です。コンソールでは、最初の10%は印刷されますが、/ – kkudi

+0

これはかなり奇妙に見えますが、おそらくフルコードを表示しますか? (http://www.java2s.com/Tutorial/Java/0180__File/NestedcreationofFileWriterBufferedWriterandPrintWriter.htm)、コードではかなり簡単です。 – Jasonw

1

コード内のファイルに書き込むたびに手動で.flush()コマンドを呼び出すと、正しく書き出すことができます。

これはかなり不思議ですが、問題が解決しない場合は書き返してください。

希望すると助かります!

乾杯、 ベルン

+0

no luck:/すべての印刷行でさえ – kkudi

+0

hm ...これはあなたが持っている奇妙な問題です。どのOSを共有するか心配ですか? JDKのバージョン?ターゲットプラットフォームのバージョン?あなたは使っていますか?おそらくいくつかの癖やバグがあるかもしれません。また、問題のあるコードのセグメントを共有して、多くのペアの目で見ることができるように注意してください。 – Vern

+0

javaバージョン "1.6.0_16" Java HotSpot(TM)64ビットサーバーVM(ビルド14.2-b01、混合モード)、 Linux tui 2.6。Java(TM)SEランタイム環境(ビルド1.6.0_16-b01) 28-15-ジェネリック#52-Ubuntu SMP Wed Sep 9 10:48:52 UTC 2009 x86_64 GNU/Linux – kkudi

関連する問題