如何在univocity解析器中使用迭代器/行处理器从CSV文件读取几行后停止解析?
更新#1
我尝试了下面的代码,我得到了空行。
val parserSettings = new CsvParserSettings
parserSettings.detectFormatAutomatically()
parserSettings.setEmptyValue("")
parserSettings.setNumberOfRecordsToRead(numberOfRecordsToRead)
val parser = new CsvParser(parserSettings)
val input = new FileInputStream(path)
val rows = parser.parseAll(input)
更新#2
在将inputstream传递给解析器之前,我使用Apache Tika检测文件的MIME类型以检测文件是否为CSV。
new Tika().detect(input)
这改变了输入流。由于Univocity解析器无法正确解析。
答案 0 :(得分:1)
您有许多不同的选择:
从行处理器中调用context.stop()
。
在解析器设置中,您可以将settings.setNumberOfRecordsToRead(10)
设置为读取10行并停止。
使用解析器本身,请致电parser.stopParsing()
希望这有帮助