-1

我正在尝试使用包含两个字段(制表符分隔)和不带引号的字符串的 Super CSV 解析 CSV 文件。

    occugroup_code occugroup_name
    110000个管理职业  
    130000个商业和金融运营职业   
    150000 计算机和数学职业   

我很难弄清楚如何配置 CsvPreference 以便能够为每两个返回一个 Map。有人遇到这个问题吗?

4

1 回答 1

8

下次请尝试自己做任何事情或更具体地描述您的问题。
例如:
I try the CsvPreference.xyz but it didn't work, because I get the exception abc


一些基本的东西:CSV = 逗号分隔值
您的文件不是用逗号或分号分隔的,而是用制表符分隔的。因此,您必须创建自己的 CsvPreference:

CsvPreference pref = new CsvPreference('\"', '\t', "\n");

这是完整的示例(经过测试):

InputStream inputStream = this.getClassLoader().getResourceAsStream("example.csv");
CsvPreference pref = new CsvPreference('\"', '\t', "\n");
ICsvMapReader reader = new CsvMapReader(new InputStreamReader(inputStream), pref);

List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> result;
while ((result = reader.read(new String[]{"code", "name"})) != null) {
    list.add(result);
}

for (Map<String, String> elem : list) {
    System.out.print(elem.get("code")+" | ");
    System.out.print(elem.get("name"));
    System.out.println();
}

输出:

110000 | 管理职业
130000 | 商业和金融运营职业
150000 | 计算机和数学职业

于 2011-08-07T17:39:59.793 回答