2011-12-21 33 views
8

我有一個程序可以將人員添加到數組列表中。我想要做的是將這些人添加到文本文件中,但程序會覆蓋第一行,以便人員被擦除。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 2011-12-21 10:20:30