【发布时间】:2018-11-15 01:26:04
【问题描述】:
我有一个带有 String 键和 List(String) 作为值的哈希图。
例如:
Key | Values
John | GroupName1,GroupName2,GroupName3
Nick | Groupname4,GroupName1
我想将此哈希图写入 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());
}
但这对我来说似乎不对。
【问题讨论】:
-
你能指定“似乎不正确”吗?
-
您是否收到任何错误消息?
-
当然可以。我的意思是 listWriter.write 可以接受一个 String -->key 和一个 List
--> entry.getValue() 作为参数?或者我需要传递两个字符串?我的问题是 List -
问题是你打破了 CSV 概念。键应该是文件的标题,值应该是键下的行。你为什么不直接使用 OutputStreamWriter 来制作你想要的东西?
-
在 CsvListWriter 类的文档中,我发现:write(String... columns) -->将字符串数组写入 CSV 文件的列。所以,如果我在循环中创建一个新列表并将键和值“合并”为一个新的 List
,它会起作用吗?