是否可以使用 SuperCsv 读取特定行?
假设一个 .csv 文件包含 100 行,我想读取第 11 行。
CSV 文件通常包含可变长度的记录,这意味着不可能“跳转”到指定的记录。唯一的解决方案是从文件的开头顺序读取 CSV 记录,同时保持计数,直到达到所需的记录。
我没有在 SuperCsv 中找到任何用于跳过行的特殊 API,所以我猜你必须手动调用CsvListReader#read()
方法 11 次才能获得你想要的行。
我不知道其他 CSV 阅读库是否会有“跳到行”功能,即使有,也不太可能比手动跳到所需的行更好,原因在第一个段落。
这是一个您可以调整的简单解决方案:
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.");
}
}