英文:
OpenCSV throws Error capturing CSV header on parse
问题
我正在尝试从前端上传的多部分文件中读取CSV文件。上传的CSV文件从未为空。
这是我的读取器。
Reader reader = new BufferedReader(new InputStreamReader(request.getFile().getInputStream()));
CSVReader csvReader = new CSVReader(reader);
当我使用"csvReader"进行"readAll"操作时,我能够获得值,所以我想文件或读取器没有问题。
ColumnPositionMappingStrategy<MappingModel> ms
= new ColumnPositionMappingStrategy<MappingModel>();
CsvToBean<MappingModel> csvToBean
= new CsvToBeanBuilder<MappingModel>(reader)
.withType(MappingModel.class).withSeparator(',')
.withMappingStrategy(ms).withIgnoreLeadingWhiteSpace(true)
.withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
.withSkipLines(9).build();
List<MappingModel> mappings = csvToBean.parse(); //抛出异常
但是,当我使用此配置进行解析时,出现java.lang.RuntimeException: Error capturing CSV header!
异常。
英文:
I am trying to read a csv file uploaded from front-end as multipart file. Csv file uploaded is never blank.
Reader reader = new BufferedReader(new InputStreamReader(request.getFile().getInputStream()));
CSVReader csvReader = new CSVReader(reader);
These are my readers. When I do a readAll with "csvReader", I am able to get the values, so I guess no issues with file or reader.
ColumnPositionMappingStrategy<MappingModel> ms
= new ColumnPositionMappingStrategy<MappingModel>();
CsvToBean<MappingModel> csvToBean
= new CsvToBeanBuilder<MappingModel>(reader)
.withType(MappingModel.class).withSeparator(',')
.withMappingStrategy(ms).withIgnoreLeadingWhiteSpace(true)
.withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
.withSkipLines(9).build();
List<MappingModel> mappings= csvToBean.parse(); //throwing exception
But when I do a parse with this config am getting java.lang.RuntimeException: Error capturing CSV header!
答案1
得分: 0
我升级到版本5.1.1并移除了映射策略。请参考此答案。
https://stackoverflow.com/a/48227474/1238944
英文:
Adding to solution here for easy reference to others
I upgraded to version 5.1.1 and removed mapping strategy. Refer to this answer.
https://stackoverflow.com/a/48227474/1238944
专注分享java语言的经验与见解,让所有开发者获益!
评论