将HashMap写入Csv文件

时间:2018-06-05 14:03:38

标签: java csv hashmap supercsv

我有一个带有String键和List(String)的hashmap作为值。

例如:

Key | Values
John | GroupName1,GroupName2,GroupName3
Nick | Groupname4,GroupName1

我想将此hashmap写入csv文件,以便我的csv文件包含如下行:

John,GroupName1,GroupName2,GroupName3    
Nick,Groupname4,GroupName1

我试过了:

Map<String, List<String>> usersmap = (Map<String, List<String>>) model.get("users"); //this is my map
StringWriter output = new StringWriter();
ICsvListWriter listWriter;
listWriter = new CsvListWriter(output, CsvPreference.STANDARD_PREFERENCE);
for (Map.Entry<String, List<String>> entry : usersmap.entrySet()) {
    listWriter.write(entry.getKey(), entry.getValue());
}

但它对我来说似乎不对。

1 个答案:

答案 0 :(得分:0)

尝试使用String.join(...)

将您的列表转换为逗号分隔的字符串
listWriter.write(entry.getKey(), String.join(",", entry.getValue());

Java文档:

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.Iterable-