我之前发布了一个关于如何写入 CSV 文件的问题,我得到了很多支持,但不幸的是每次代码运行时它都会覆盖旧数据,但我需要添加到文件的数据而不是覆盖它。
该应用程序是一个简单的登录页面,它将用户注入(inject)的用户名和密码存储在 CSV 文件中。
public void setCreateButton() throws Exception {
String newUsername = usernameTextField.getText();
String newUserPassword = passwordField.getText();
String confirmedPassword = confirmPasswordField.getText();
try {
if (newUserPassword.equals(confirmedPassword)) {
File file = new File("D:\\Users\\login.csv");
PrintWriter printWriter = new PrintWriter(file);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(newUsername);
stringBuilder.append(',');
stringBuilder.append(newUserPassword);
stringBuilder.append('\n');
printWriter.write(stringBuilder.toString());
printWriter.flush();
printWriter.close();
} else {
System.out.println("Password are not matched");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
每次单击该按钮时,它都会覆盖 CSV 文件中的数据,我只需要跳过文件中现有的任何行并添加包含新数据的新行。
最佳答案
实现所需行为的最简单方法是使用 FileWriter
。它有一个构造函数 takes一个 boolean
参数,您应该将 true
传递给它,以便附加文件而不被覆盖。类似这样的事情:
FileWriter fr = new FileWriter(file, true);
PrintWriter printWriter = new PrintWriter(fr);
关于java - 使用java将数据添加到CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116050/