Java 使用Open CSV reader跳过第一行
这是我目前使用的线路Java 使用Open CSV reader跳过第一行,java,opencsv,Java,Opencsv,这是我目前使用的线路 File booleanTopicFile; // booleanTopicFile is csv file uploaded from form CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8")); 要跳过包含标题的csv的第一行。 我不想使用任何分隔符,除了默认的一个逗号(,),它已经在默认构造函数中可用。
File booleanTopicFile;
// booleanTopicFile is csv file uploaded from form
CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8"));
要跳过包含标题的csv的第一行。
我不想使用任何分隔符,除了默认的一个逗号(,),它已经在默认构造函数中可用。
在参数化构造函数中,有一个选项可以跳过行数,但如何处理构造函数的第二个和第三个参数
CSVReader csvReader = new CSVReader(new InputStreamReader(Reader reader, char c, char c1, int index);
--
谢谢此CSVReader类的构造函数在读取文件时将跳过csv的第1行
CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
我发现这个问题和回答很有帮助,我想进一步说明。在最新的opencsv(撰写本文时为2.3)中,实际的代码行是:
new CSVReader( new StringReader(csvText), CSVParser.DEFAULT_SEPARATOR,
CSVParser.DEFAULT_QUOTE_CHARACTER, 1);
注意:它使用CSVParser而不是CSVReader。至少从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”))。使用kiplines(1.build()
您还可以使用带过滤器的:
watFileCsvBeans = new CsvToBeanBuilder<ClassType>(isr)
.withType(ClassType.class)
.withIgnoreLeadingWhiteSpace(true)
// CsvToBeanFilter with a custom allowLine implementation
.withFilter(line -> !line[0].equals("skipme"))
.build()
.parse();
watFileCsvBeans=新的CsvToBeanBuilder(isr)
.withType(ClassType.class)
.带忽略前导空格(true)
//具有自定义allowLine实现的CsvToBeanFilter
.withFilter(第->行!第[0]行)。等于(“skipme”))
.build()
.parse();
为什么不直接读第一行,什么也不做呢?csvReader.readNext();在循环之前,是另一种解决方案,但如果可能的话,通过构造函数将是最优的。+1回答正确,但大多数CSV文件不使用双引号吗?因此,它将是新的CSVReader(新的StringReader(csvText),CSVReader.DEFAULT_分隔符,CSVReader.DEFAULT_引号_字符,1)代码>改为。在版本2.3中,默认分隔符和默认引号字符现在在CSVParser类中。这有一个问题。如果csv的值包含单引号,它将跳过该记录。e、 Adrian,D'sousa,AgentJust仅供参考,但该构造函数在4.0版中已被弃用。不确定如何在不使用不推荐的方法的情况下实现相同的功能。这是不推荐的。您可以使用=>CSVReader CSVReader=new-CSVReaderBuilder(new-FileReader(csvFileName))。使用kiplines(1)。build()
非常有用。当我看到你的答案时,我正在寻找一种使用null字符作为quote参数的方法。这就是我在2016年的答案中所说的。WithKipline()工作得很好,但withFilter()不工作。