使用SuperCSV读取特定行

时间:2012-02-11 11:46:56

标签: java csv supercsv

是否可以使用SuperCsv读取特定行?

假设.csv文件包含100行,我想读取第11行。

2 个答案:

答案 0 :(得分:4)

CSV文件通常包含可变长度记录,这意味着无法跳过"跳转"到指定的记录。唯一的解决方案是从文件开头顺序读取CSV记录,同时保持计数,直到达到所需记录。

我没有在SuperCsv中找到任何特殊的API用于跳过这些行,所以我猜你必须手动调用CsvListReader#read()方法11次以获得你想要的行。

我不知道其他CSV阅读库是否会有"跳转到线"功能,即使它们确实如此,由于第一段中给出的原因,它不可能比手动跳到所需的行更好。

答案 1 :(得分:0)

这是您可以调整的简单解决方案:

listReader = new CsvListReader(new InputStreamReader(new FileInputStream(CSVFILE, CHARSET), CsvPreference.TAB_PREFERENCE);
listReader.getHeader(false);
while ((listReader.read(processors)) != null) {
    if (listReader.getLineNumber() == 1) {
        System.out.println("Do whaever you need.");
    }
}