如何使用 apache commons 将新列添加到 csv 文件
Posted
技术标签:
【中文标题】如何使用 apache commons 将新列添加到 csv 文件【英文标题】:how to add new column to a csv file using apache commons 【发布时间】:2018-06-10 23:11:29 【问题描述】:我有一个如下所示的 csv 文件
name,age,total
xyz,22
abc,20
处理后的 csv 文件应如下所示
name,age,total
xyz,22,100
abc,20,102
运行此代码后
public class Converter
public static void main(String[] args) throws IOException
BufferedWriter writer = Files.newBufferedWriter(Paths.get(Constants.SAMPLE_CSV_FILE));
CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT);
csvPrinter.print(100);
csvPrinter.print(102);
csvPrinter.close();
输出的csv文件变成这样
100
102
我希望总数为 100 和 102。如何做到这一点
【问题讨论】:
您从未真正读取现有数据。您必须读取数据并将字段添加到每一行,然后写入更新的行. 【参考方案1】:首先,您不应覆盖现有文件。因此,在 FileWriter 构造函数上使用附加参数:
FileWriter pw = new FileWriter("C:\\exampleFile.csv",true);
其次,正如您在结果中看到的那样,CSVPrinter 逐行遍历您的文件。如果要添加新列,实际上需要遍历每一行并在每次迭代时插入新列的行数据,如彻底解释here
【讨论】:
以上是关于如何使用 apache commons 将新列添加到 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章
Apache Spark 如何将新列从列表/数组附加到 Spark 数据帧