【发布时间】:2014-04-10 23:08:13
【问题描述】:
我整天都在寻找如何解决这个问题,但什么也没有…… 我想编写函数,将 CSV 文件转换为列表(字符串)集合。 这是这个函数:
public Collection<? extends List<String>> parse() throws IOException {
Collection<List<String>> collectionOfLists = new ArrayList<List<String>>();
CsvListReader parser = new CsvListReader(Files.newBufferedReader(pathToFile, StandardCharsets.UTF_8), CsvPreference.EXCEL_PREFERENCE);
List<String> row;
while( (row = parser.read()) != null)
collectionOfLists.add(row);
return collectionOfLists;
}
public static String toString(Collection<? extends List<String>> csv) {
StringBuilder builder = new StringBuilder();
for(List<String> l : csv) {
for(String s : l)
builder.append(s).append(',');
if(builder.length() > 0)
builder.setCharAt(builder.length()-1,'\n');
}
return builder.toString();
}
但是例如对于该输入:
id, name, city, age
1,"Bob",London,12
toString(parse()) 的输出是:
id, name, city, age
1,Bob,London,12
而不是相同的输入:/ 我能做什么,字符串包含 \" (引号)? 请帮帮我。
【问题讨论】:
-
errr...如果您想自己编写,为什么问题标题中的“SuperCSV,OpenCSV”?
-
似乎库剥离了
""。 -
因为我尝试使用这些类,但没有找到任何解决方案
-
javadoc 可能有你想要的。
-
我看了好几遍...
标签: java parsing csv quotes supercsv