2013-03-24 80 views
1

嗨即時嘗試創建一個單詞列表使用.txt文件,其中我從JOptionPane窗口中輸入用戶的輸入並將其存儲在文本文件的新行。我遇到的問題是,當我輸入多個單詞時,它會覆蓋已存在的數據。我希望它跳過一行並將其添加到當前列表中。這是我有的代碼:需要停止txt文件中的文字覆蓋JAVA

public static void Option1Method() throws IOException 
{ 
    FileWriter aFileWriter = new FileWriter("wordlist.txt"); 
    PrintWriter out = new PrintWriter(aFileWriter); 
    String word = JOptionPane.showInputDialog(null,"Enter word or phrase: "); 

    out.println(word); 

    out.close(); 
    aFileWriter.close(); 
} 

回答

0

問題是您在方法結束時關閉流。每次調用它時,都會重新創建FileWriter和PrintWriter,接受輸入,將其添加到文件中,然後再次關閉它。解決這個問題的一個方法是創建一個靜態的String對象,並且每次將用戶輸入添加到它。在程序結束時,將該字符串寫入文件,然後關閉它。

1

只是把真正的FileWriter的結束使得其切換到附加模式:

public static void Option1Method(){ 
    FileWriter aFileWriter = null; 
    PrintWriter out = null; 
     try { 
     aFileWriter = new FileWriter("wordlist.txt",true); 
     out = new PrintWriter(aFileWriter); 
     String word = JOptionPane.showInputDialog(null, "Enter word or phrase: "); 
     out.println(word); 
     } catch (IOException iOException) { 
     } catch (HeadlessException headlessException) { 
     } finally { 
     out.close(); 
     try { 
      aFileWriter.close(); 
     } catch (IOException iOException) { 
     } 
     } 
}