Можно ли прочитать определенную строку с помощью SuperCsv?
Предположим, файл .csv содержит 100 строк, и я хочу прочитать строку номер 11.
Можно ли прочитать определенную строку с помощью 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.");
}
}