我正在解析csv文件,并遇到了一个问题,如果文件末尾包含一个空行,它会破坏事情。简单的解决方法是删除文件末尾的空白行,但我宁愿知道如何将其配置为忽略末尾的空白行(如果存在)。
我在这里从我的其他系统转录了代码,以显示我如何创建映射迭代器
对于有效的数据行,它运行正常,但我遇到了一个问题,如果csv文件在文件末尾包含一个空行,我最终会得到一个空指针异常。
映射迭代器将为空行包含一个col_a键,其值为空值,没有其他内容。
我如何让它忽略空行?
下面是一个代码示例
private MappingIterator getMappingIteratorCsv(InputStream inputStream) {
logger.info("Processing ");
CsvMapper mapper = new CsvMapper();
mapper.enable(CsvParser.Feature.SKIP_EMPTY_LINES);
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY);
CsvSchema.Builder schemaBuilder = CsvSchema.builder().setColumnSeparator(',');
schemaBuilder.addColumn("col_a");
schemaBuilder.addColumn("col_b");
schemaBuilder.addColumn("col_c");
CsvSchema schema = schemaBuilder.build();
MappingIterator<Map<String, String>> mappingIterator;
mappingIterator = mapper.readerFor(Map.class).with(schema).readValues(inputStream);
return mappingIterator;
}
凤凰求蛊
相关分类