我在java中使用BeanIO 1.2,这是我的映射:
<stream name="RecordImport" format="delimited">
<record name="Record" minOccurs="1" maxOccurs="unbounded" class="com.myclasses.Record">
<field name="date" type="date" format="MM/dd/yyyy" trim="true"/>
<field name="user" type="string" trim="true"/>
<field name="storage" type="string" trim="true"/>
<field name="product" type="string" trim="true"/>
<field name="qty" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty1" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty2" type="bigdecimal" format="#,##0" trim="true"/>
<field name="altQty3" type="bigdecimal" format="#,##0" trim="true"/>
</record>
</stream>
我的文本文件如下:
3/11/2012 lpq 200011 RDD1006 8
3/11/2012 lpq 200011 RDD1006 8
3/11/2012 lpq 200011 RDD1006 8 1 2 3
3/11/2012 lpq 200011 RDD1006 8
结果是我收到了这条消息:
"- Line 4: Too few fields, expected 8 minimum."
现在这很奇怪,因为我确实有标签,表明第四行有8个字段。这似乎是由于第4行中的最后一个树字段为空的事实。我需要它们的能力为null,但是不能提出这条消息。同样奇怪的是,这只发生在第4行而不是第1行或第2行。
有什么想法吗?
答案 0 :(得分:0)
我无法在不删除其中一个尾随字段/标签的情况下重新创建您所看到的问题(使用BeanIO 1.2.5)。如果它们确实是可选的,则可以在记录定义上设置minLength =“5”。 BeanIO 2.x更灵活一点,允许你在尾随的可选字段上设置minOccurs =“0”而不是......
祝你好运!