2016-04-11 2 views
0

Я пытаюсь создать простую программу, которая сохраняет вход пользователя в форме качания в файл .CSV. У меня есть работа над тем, где он будет писать в первый раз.При записи в файл CSV предыдущая строка перезаписывается

Если я выйду из системы или введите второй набор значений и нажмите кнопку «Сохранить предыдущую строку», она будет перезаписана в файле.

  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(); 

Я попытался добавить 'sb.append (' \ n ');' до конца думая, что это исправит, но это не так.

ответ

3

Вам нужно открыть файл в режиме добавления:

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

что неподвижную его , Благодаря! – Tom

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

Если вы используете Java 8, вы можете очистить его так:

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