java Univocity如何将3(n)行解析为一行(bean)
我正在为我的一个项目评估Univocity解析器,固定宽度平面文件格式从三个细节记录(例如,以AA、BB、CC开头)生成一个记录(Bean)——这个文件可以使用Univocity解析吗
我可以使用recordEndsOnNewline
继续阅读并添加一些自定义转换,但是是否有现成的ParserSettings
AA1234 data
BBmore data
CCsome more data row 1 ended
AA5678 data
BBmore data
CCsome more data row 2 ended
更新:
可以使用:setLineSeparator("\nAA");
# 1 楼答案
这里是图书馆的作者。首先需要定义字段位置。当你想解析出现在多行中的值时,你必须将
recordEndsOnNewLine
设置为false
,这样你就走上了正确的道路如果将形成单个记录的行连接起来,则更容易“看到”每条记录的开始和结束位置:
根据您提供的示例,可以创建以下字段配置(我假设您不需要“AA”、“BB”和“CC”字符串):
你可以用这个解析你的输入:
这将为您提供正确的输出:
现在我们知道了每个字段的起点和终点,我们可以定义您的java bean:
这样一来,解析输入就变得简单了:
它会将bean打印到输出中,如下所示:
希望这有帮助