为了账号安全,请及时绑定邮箱和手机立即绑定

如何使映射迭代器不包含空行?

如何使映射迭代器不包含空行?

倚天杖 2022-09-22 10:14:17
我正在解析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

所以我认为你必须选择先清理输入,如果你不想继续为项目贡献一个修复:-)

干杯,安德斯


查看完整回答
反对 回复 2022-09-22
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信