2011-02-10 7 views
2

私は、ユーザーがテキストを入力するためのJTextAreaを持つJavaアプリケーションを開発中です。それはどのような量の行でも構いませんが、私はFileWriterに問題があります。FileWriterは入力の最初の行だけを保存しています。私はすべての前スイングやてFileWriterを使ったことがないので、私はこれは非常に間違って取得することができるが、ここに私のコードです:Java FileWriterは最初の行のみを書きます

FileWriter fw = null; 
    try { 
     fw = new FileWriter(lastSavedFile); 
     details.write(fw); 
    } catch (IOException exception) { 
     System.err.println("Error saving file"); 
     exception.printStackTrace(); 
    } finally { 
     if (fw != null) { 
      try { 
       fw.close(); 
      } catch (IOException exception) { 
       System.err.println("Error closing writer"); 
       exception.printStackTrace(); 
      } 
     } 
    } 

感謝を!

+2

「詳細」機能とは何ですか?問題はそこにある可能性があります。 – chahuistle

+2

ソリューション全体が、詳細を参照するクラスにあります(コードスニペットから判断できません)。 – Yishai

答えて

2

finallyブロックでFileWriterを閉じる前に、FileWriterをフラッシュしてみてください。 。

. 
if (fw != null) 
{ 
    try 
    { 
     fw.flush(); 
     fw.close(); 
    } catch (IOException exception) 
    { 
     System.err.println("Error closing writer"); 
     exception.printStackTrace(); 
    } 
} 
. 
. 

私は@ Yishaiに同意します...そして可能であれば、詳細機能を使用してください。これは他人がそれに答えるのを助けるでしょう。

+0

'fw.close()'が 'flush'自体をしない場合、バグがあります。 –

0

このようにコンストラクタを使用します。 FileWriter writer = new FileWriter( "lastsavedfilee.txt"、true);

関連する問題