java - 使用java将数据添加到CSV文件

标签 java csv

我之前发布了一个关于如何写入 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/

相关文章:

java - 如何在 Android Studio 中将 CSV 文件解析为数组

python - 使用 csv 读取将值添加到 DASK 数据帧导入的列

java - 当我尝试从外部文件读取时,为什么 readObject 挂起?

java - 在 JPA 查询中使用 group by 和 having

python - 用pandas在csv中上传csv

Android:共享 CSV 文件

c# - 从应用程序中创建的文件夹中打开 csv 文件

java - public static main (String args[]) 的变体

java - Viewpager 显示正确的 fragment 但未初始化它

java - 更好的项目间开发方式(使用 Gradle 或 IntelliJ)