我正在解析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;}
1 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
您要配置的功能似乎已经提出,但尚未实现:
https://github.com/FasterXML/jackson-dataformats-text/issues/15
所以我认为你必须选择先清理输入,如果你不想继续为项目贡献一个修复:-)
干杯,安德斯
添加回答
举报
0/150
提交
取消