0

私は 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."

4 行目に 8 つのフィールドがあることを示すタブが配置されているため、これは奇妙です。これは、4 行目の最後のツリー フィールドが null であるために発生するようです。それらがnullでありながら、このメッセージが発生しないようにする機能が必要です。また奇妙なのは、これが 4 行目だけで発生し、1 行目や 2 行目では発生しないことです。

何か案は?

4

1 に答える 1

0

末尾のフィールド/タブの1つを削除せずに、(BeanIO 1.2.5を使用して)表示されている問題を再現することはできませんでした。それらが実際にオプションである場合は、レコード定義にminLength="5"を設定できます。BeanIO 2.xはもう少し柔軟性があり、代わりに末尾のオプションフィールドにminOccurs="0"を設定できます...

幸運を!

于 2012-10-20T20:04:20.823 に答える