我正在解析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
提交
取消