Java 将新列附加到 csv 文件

标签 java csv export-to-csv filewriter

我想计算一些列数据并将其作为列写入 csv 文件。然后在计算其他数据列后,我想将其附加到同一文件中,但作为新列。

这是我所做的:

try {
    FileWriter writer = new FileWriter(OUT_FILE_PATH, true);
    for (int i=0; i<data.size(); i++) {
        writer.append(String.valueOf(data.get(i)));
        writer.append(",");
        writer.append("\n");
    }
    writer.flush();
    writer.close();
} catch (Exception e) {} 

结果 - 它将新列附加到第一列下方,因此我只有一个长列。

谢谢

最佳答案

也许是这样的:

public void appendCol(String fileName, ???ArrayList??? data) { //assuming data is of type ArrayList here, you need to be more explicit when posting code

    String lineSep = System.getProperty("line.separator");
    String output = "";
    try{
        BufferedReader br = new BufferedReader(new  FileReader(fileName));
        String line = null;
        int i = 0;
        while ((line = br.readLine()) != null) {
            output += line.replace(
                    lineSep,
                    "," + String.valueOf(data.get(i)) + lineSep);
            i++;
        }
        br.close();
        FileWriter fw = new FileWriter(fileName, false); //false to replace file contents, your code has true for append to file contents
        fw.write(output);
        fw.flush();
        fw.close();
    } catch (Exception e){
        e.printStackTrace();
    } 
}

关于Java 将新列附加到 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34590971/

相关文章:

r - 使用R将多个数据帧写入.csv文件

java - 我有驱动程序,class.forname() 不会抛出异常,但会抛出 'No Suitable Driver for MySQL '

mysql - fputcsv 未将数据库导出到 csv

laravel - 导出所有客户端不起作用,文件保存时没有名称和扩展名

python - 将结构化文本文件转换为 csv(无法将行更改为列):

r - 将列附加到满足特定条件的行

java - 如何在junit 5中为测试用例设置环境变量

java - 将 JavaFX 应用程序 (.Jar) 转换为 Windows 应用程序 (.exe)

java - 如何提高 Java ArrayList 的性能

php - 通过 CSV 内容 DELETE FROM 查询 MySQL