是否可以使用SuperCsv读取特定行?
假设.csv文件包含100行,我想读取第11行。
答案 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.");
}
}