Ответ 1
Этот конструктор класса CSVReader пропустит первую строку csv во время чтения файла.
CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
Вот строка, которую я использую в настоящее время
File booleanTopicFile;
// booleanTopicFile is csv file uploaded from form
CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8"));
Хотите пропустить первую строку csv, которая содержит заголовки. Я не хочу использовать какой-либо разделитель, кроме как по умолчанию одной запятой (,), которая уже доступна в конструкторе по умолчанию. В параметризованном конструкторе есть опция пропустить no. строк, но как иметь дело со вторым и третьим параметром конструктора.
CSVReader csvReader = new CSVReader(new InputStreamReader(Reader reader, char c, char c1, int index);
- Благодаря
Этот конструктор класса CSVReader пропустит первую строку csv во время чтения файла.
CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
Я нашел этот вопрос и ответ полезным, я хотел бы расширить комментарий Кристофа Русси. В последнем opencsv (2.3 на момент написания этой статьи) Фактическая строка кода:
new CSVReader( new StringReader(csvText), CSVParser.DEFAULT_SEPARATOR,
CSVParser.DEFAULT_QUOTE_CHARACTER, 1);
Обратите внимание, что вместо CSVReader используется CSVParser.
По крайней мере, начиная с версии 3.8, вы можете использовать CSVReaderBuilder
и установить его, чтобы пропустить первую строку.
Пример:
CSVReader reader = new CSVReaderBuilder(inputStreamReader)
.withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
// Skip the header
.withSkipLines(1)
.build();
с использованием последней версии opencsv -
CSVReader csvReader = new CSVReaderBuilder(new FileReader("book.csv")).withSkipLines(1).build()
Вы также можете использовать withFilter
:
watFileCsvBeans = new CsvToBeanBuilder<ClassType>(isr)
.withType(ClassType.class)
.withIgnoreLeadingWhiteSpace(true)
// CsvToBeanFilter with a custom allowLine implementation
.withFilter(line -> !line[0].equals("skipme"))
.build()
.parse();