2011-12-21 11 views
8

Mam program, który dodaje osoby do tablicy. Próbuję też dodać te osoby do pliku tekstowego, ale program nadpisuje pierwszą linię, aby osoby zostały usunięte.Java - nie zastępuj bufferedwriter

Jak mogę napisać kompilator do napisania na następnej linii wolnej?

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 "); 
    } 
} 
} 

Odpowiedz

12

FileWriter trwa optional boolean argument który określa, czy powinna ona dołączyć do lub zastąpić istniejącą zawartość. Przekaż true, jeśli chcesz otworzyć plik do pisania w trybie dołączania.

+0

To prawda! Dzięki! – user1051477

Powiązane problemy