Прочитайте конкретную строку, используя SuperCSV

Можно ли прочитать определенную строку с помощью SuperCsv?

Предположим, файл .csv содержит 100 строк, и я хочу прочитать строку номер 11.


person prasun    schedule 11.02.2012    source источник


Ответы (2)


Файлы CSV обычно содержат записи переменной длины, что означает невозможность «перехода» к указанной записи. Единственное решение — последовательно читать CSV-записи с начала файла, сохраняя при этом подсчет, пока не дойдете до нужной записи.

Я не нашел в SuperCsv никакого специального API для такого пропуска строк, поэтому, думаю, вам придется вручную вызвать метод CsvListReader#read() 11 раз, чтобы получить нужную строку.

Я не знаю, будут ли другие библиотеки для чтения CSV иметь функцию «перехода к строке», и даже если они будут, вряд ли она будет работать лучше, чем переход вручную к нужной строке, по причине, указанной в первом параграф.

person rodion    schedule 11.02.2012

Вот простое решение, которое вы можете адаптировать:

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.");
    }
}
person Yaniv Levy    schedule 25.07.2019