Пропустить дополнительный заголовок в CSV-файле с SuperCSV

У меня есть система, где пользователи могут импортировать данные через CSV-файлы. Файл анализируется в POJO с использованием SuperCSV.

Я хочу иметь возможность управлять этими файлами с или без строки заголовка.

CsvBeanReader.getHeader(true) извлечет первую строку, но если это не заголовок, то эта строка не будет проанализирована BeanReader.

Есть ли простой способ определения заголовка без потери первой строки данных?

3 ответа

Решение

Я нашел решение.

Заворачивая предоставленный Reader используя BufferedReader Я мог бы отметить начало, прочитать первую строку, а затем сделать reader.reset() если это не заголовок.

Лучшая идея, чтобы пропустить заголовок из супер CSV при чтении значений из файла: -

// не пишите эту строку beanReader.getHeader (true)

// перед чтением значений передаем массив заголовков, который вы объявили как headers = {column1}, {column2}

// затем используем строки ниже, которые исключают заголовок

beanReader.read(тип, заголовки, процессоры))

Вышеуказанные шаги помогают нам прочитать файл CSV, который был сохранен без заголовка.

Самым простым решением было бы просто прочитать файл дважды (проверьте наличие ожидаемых заголовков на первом проходе - вам нужно только прочитать первую строку и прочитать с / без заголовка на втором проходе).

Другие вопросы по тегам