我正在尝试制作一个简单的程序,将用户输入的样式保存到.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');'到最后的想法会解决它,但事实并非如此。
答案 0 :(得分:3)
您需要以追加模式打开文件:
PrintWriter pw = new PrintWriter(new FileWriter("customer.csv", true));
答案 1 :(得分:0)
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("file.txt", true)));
答案 2 :(得分: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();
}