使用Open CSV阅读器跳过第一行

时间:2012-11-27 07:56:50

标签: java opencsv

这是我目前正在使用的行

File booleanTopicFile;
// booleanTopicFile is csv file uploaded from form
CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8"));

想要跳过包含标题的csv的第一行。 我不想使用任何分隔符,除了默认构造函数中已有的默认一个逗号(,)。 在参数化构造函数中,有一个跳过否的选项。行但是如何处理构造函数的第2和第3个参数。

CSVReader csvReader = new CSVReader(new InputStreamReader(Reader reader, char c, char c1, int index);

- 感谢

5 个答案:

答案 0 :(得分:27)

CSVReader类的构造函数将在读取文件时跳过csv的第1行。

CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);

答案 1 :(得分:12)

我发现此问题和回复很有帮助,我想扩展Christophe Roussy's comment。在最新的opencsv(撰写本文时为2.3)实际的代码行是:

new CSVReader( new StringReader(csvText), CSVParser.DEFAULT_SEPARATOR,
               CSVParser.DEFAULT_QUOTE_CHARACTER, 1);

请注意,它使用CSVParser而不是CSVReader。

答案 2 :(得分:10)

至少从版本3.8开始,您可以使用CSVReaderBuilder并将其设置为跳过第一行。

示例:

CSVReader reader = new CSVReaderBuilder(inputStreamReader)
                .withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
                // Skip the header
                .withSkipLines(1)
                .build();

答案 3 :(得分:0)

使用最新版本的opencsv版本-

CSVReader csvReader = new CSVReaderBuilder(new FileReader("book.csv")).withSkipLines(1).build()

答案 4 :(得分:0)

您也可以使用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();