【发布时间】:2020-03-23 00:16:41
【问题描述】:
温柔点, 这是我第一次使用 Apache Commons CSV 1.7。
我正在创建一个服务来处理一些 CSV 输入, 从外部来源添加一些附加信息, 然后写出此 CSV 以供摄取到另一个系统中。
我将收集到的信息存储在一个列表中
HashMap<String, String> 用于最终输出 csv 的每一行。
Hashmap 包含<ColumnName, Value for column>。
我在使用 CSVPrinter 将 HashMap 的值正确分配到行时遇到问题。 我可以将值连接成一个字符串,变量之间有逗号; 然而, 这只是将整个字符串插入第一列。
我无法定义或硬编码标头,因为它们是从配置文件中获取的,并且可能会根据使用该服务的项目而改变。
这是我的一些代码:
try (BufferedWriter writer = Files.newBufferedWriter(
Paths.get(OUTPUT + "/" + project + "/" + project + ".csv"));)
{
CSVPrinter csvPrinter = new CSVPrinter(writer,
CSVFormat.RFC4180.withFirstRecordAsHeader());
csvPrinter.printRecord(columnList);
for (HashMap<String, String> row : rowCollection)
{
//Need to map __record__ to column -> row.key, value -> row.value for whole map.
csvPrinter.printrecord(__record__);
}
csvPrinter.flush();
}
感谢您的帮助。
【问题讨论】:
-
columnList 包含标题列表,对吧?
标签: java csv apache-commons-csv