2011-12-21 13 views
8

私は人をarraylistに追加するプログラムを持っています。私がしようとしているのは、これらの人物をテキストファイルに追加することですが、プログラムが最初の行を上書きして人物が消去されるようにします。Java - バッファライターで上書きしないでください

次の空き行に書き込むようにコンパイラに指示するにはどうすればよいですか?

import java.io.*; 
import java.util.*; 
import javax.swing.JTextArea; 

public class Logic { 

File file; 
FileWriter fw; 
FileReader fr; 
BufferedWriter bw; 
ArrayList<Person> person; 

public Logic() { 
    try { 
     file = new File("register.txt"); 

     if (!file.exists()) { 
      file.createNewFile(); 
     } 
    } catch (IOException e) { 
    } 

    person = new ArrayList<Person>(); 
} 

// Add person 
public void addPerson(String name, int tele) { 
    person.add(new Person(name, tele)); 
    savePerson(name, tele); 
} 

// Save person to external file 
public void savePerson(String name, int tele) { 
    try { 
     fw = new FileWriter(file.getName()); 
     bw = new BufferedWriter(fw); 
     String tel = Integer.toString(tele); 
     bw.write(name + "\t" + tel); 
     bw.newLine(); 
     bw.close(); 

    } catch (Exception e) { 
     System.out.println("skrev inte ut med buffered"); 
    } 
} 

// Går in i alla objekt av klassen Person och skriver ut toString i 
// textArean 
public void visaAlla(JTextArea textRuta) { 
    textRuta.setText(""); 
    // for(Person p:person) 
    // { 
    // textRuta.append(p.toString()); 
    // } 

    try { 
     fr = new FileReader(file.getName()); 
     BufferedReader in = new BufferedReader(fr); 
     String str; 

     while ((str = in.readLine()) != null) { 
      textRuta.append(str); 
     } 

    } catch (Exception e) { 
     System.out.println("gickcinte "); 
    } 
} 
} 

答えて

12

FileWriterは、それがに追加するか、既存のコンテンツを上書きするかどうかを指定optional boolean argumentかかります。追加モードで書き込み用にファイルを開く場合は、trueを渡します。

+0

そうです!ありがとう! – user1051477

関連する問題