我需要解析可能非常大的文件,可能是100兆字节和数百万行。我一直试图使用FlatPack来做到这一点。我认为这样做的方法是使用缓冲的解析器和新的流方法。但是,尽管dataset.next()对于正确的记录数返回true,但dataset.getRecord()返回的Optional永远不会包含值。
我看过这个example/test,但它只计算记录的数量,实际上并没有对内容做任何事情。 例如,/测试
答案 0 :(得分:0)
您可以使用BuffReaderParseFactory类而不是DefaultParserFactory。
只有当您拨打" next()"
时,它才会从输入文件中读取一条记录。答案 1 :(得分:0)
DefaultParserFactory和BuffReaderParseFactory的解释并不完全有用。两个库都说返回PZParser
(来自newDelimitedParser
),但只有一个返回记录中的实际值。基于我见过的例子,我认为BuffReaderParseFactory
仅用于检查性能(因此应该更快),而另一方面DefaultParserFactory
包含所有记录。