1

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

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

4

2 回答 2

4

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

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

我不知道其他 CSV 阅读库是否会有“跳到行”功能,即使有,也不太可能比手动跳到所需的行更好,原因在第一个段落。

于 2012-02-11T12:33:04.837 回答
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.");
    }
}
于 2019-07-25T19:43:54.927 回答