当你的问题是询问如何使用Super CSV进行此操作时,我想我会参与其中(作为项目的维护者).
我最初认为您可以使用CsvBeanWriter和名称映射数组“key”,“value”迭代地图的条目集,但这不起作用,因为HashMap的内部实现不允许反射获取键/值.
因此,您唯一的选择是使用CsvListWriter,如下所示.至少这种方式你不必担心转义CSV(这里的每个其他例子都加入逗号… aaarrggh!):
@Test
public void writeHashMapToCsv() throws Exception {
Map map = new HashMap<>();
map.put("abc", "aabbcc");
map.put("def", "ddeeff");
StringWriter output = new StringWriter();
try (ICsvListWriter listWriter = new CsvListWriter(output,
CsvPreference.STANDARD_PREFERENCE)){
for (Map.Entry entry : map.entrySet()){
listWriter.write(entry.getKey(), entry.getValue());
}
}
System.out.println(output);
}
输出:
abc,aabbcc
def,ddeeff