2016-04-11 2 views
0

Ich versuche ein einfaches Programm zu erstellen, das Benutzereingaben in einem Swing-Formular in einer .CSV-Datei speichert. Ich arbeite daran, wo es das erste Mal schreiben wird.Beim Schreiben in eine CSV-Datei wird die vorherige Zeichenfolge überschrieben.

Wenn ich einen zweiten Satz Werte verlasse oder eingib und auf Speichern klicke, wird der vorherige String in der Datei überschrieben.

  try { 
       PrintWriter pw = new PrintWriter(new File("customer.csv")); 
       StringBuilder sb = new StringBuilder(); 

       sb.append(merch); 
       sb.append(','); 
       sb.append(cont); 
       sb.append(','); 
       sb.append(mail); 
       sb.append(','); 
       sb.append(cphone); 
       sb.append('\n'); 

       pw.write(sb.toString()); 
       pw.flush(); 
       pw.close(); 

      } catch (FileNotFoundException e1) { 
       JOptionPane.showMessageDialog(frame, "File Not  Located"); 
       e1.printStackTrace(); 

ich versuchte, das Hinzufügen der 'sb.append (' \ n ');' bis zum Ende dachte, das würde es beheben, aber es tat es nicht.

Antwort

3

Sie müssen Datei in Zufügen-Modus öffnen:

PrintWriter pw = new PrintWriter(new FileWriter("customer.csv", true)); 
+0

, die es fest . Vielen Dank! – Tom

0
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("file.txt", true))); 
0

Wenn Sie mit Java 8, könnten Sie es wollen bis reinigen wie so:

try(Writer pw = new PrintWriter(new BufferedWriter(new FileWriter("customer.csv", true)))) { 
     pw.write(new StringJoiner(",", "", "\n") 
      .add(merch) 
      .add(cont) 
      .add(mail) 
      .add(cphone) 
      .toString() 
     ); 
    } catch (IOException e1) { 
     JOptionPane.showMessageDialog(frame, "File Not Located"); 
     e1.printStackTrace(); 
    } 
Verwandte Themen