我有一个带有字符串键和字符串值的 HashMap 。它包含大量键及其各自的值。
例如:
key | value
abc | aabbcc
def | ddeeff
我想将这个 hashmap 写入一个 csv 文件,这样我的 csv 文件包含如下行:
abc,aabbcc
def,ddeeff
我在这里使用 supercsv 库尝试了以下示例:http://javafascination.blogspot.com/2009/07/csv-write-using-java.html .但是,在此示例中,您必须为要添加到 csv 文件的每一行创建一个 HashMap 。我有大量的键值对,这意味着需要创建多个 HashMap ,每个 HashMap 包含一行数据。我想知道是否有更优化的方法可用于此用例。
最佳答案
使用 Jackson API,可以将 map 或 map 列表写入 CSV 文件。查看完整示例 here
/**
* @param listOfMap
* @param writer
* @throws IOException
*/
public static void csvWriter(List<HashMap<String, String>> listOfMap, Writer writer) throws IOException {
CsvSchema schema = null;
CsvSchema.Builder schemaBuilder = CsvSchema.builder();
if (listOfMap != null && !listOfMap.isEmpty()) {
for (String col : listOfMap.get(0).keySet()) {
schemaBuilder.addColumn(col);
}
schema = schemaBuilder.build().withLineSeparator(System.lineSeparator()).withHeader();
}
CsvMapper mapper = new CsvMapper();
mapper.writer(schema).writeValues(writer).writeAll(listOfMap);
writer.flush();
}
关于Java - 将 hashmap 写入 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172003/