如何使用BeanIO处理多行固定长度文件

时间:2015-04-16 08:13:55

标签: etl bean-io

我是BeanIO的新手,它解决了我的大部分问题,但我无法弄清楚如何解决这个问题:

我有一个多行固定宽度文件,格式如下:

BBB001     000          000000
BBB555     001          George
BBB555     002          London
BBB555     003          UK
BBB555     999          000000
BBB555     001          Jean
BBB555     002          Paris
BBB555     003          France
BBB555     004          Europe
BBB555     999          000000
BBB999     000          000000

基本上有一个页眉和页脚,我可以轻松阅读,因为它们定义明确。但是,单个记录实际上是多行,记录的末尾是中间有999的行(该行没有其他信息)。我想知道我的xml应该是什么,或者我需要覆盖哪些类,所以我可以正确阅读这种格式。

1 个答案:

答案 0 :(得分:0)

我建议使用lineContinuationCharacter属性,如BeanIO文档中所述。它可能必须配置为回车和换行。

尝试这样的事情:

<beanio xmlns="http://www.beanio.org/2012/03" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">

  <stream name="s1" format="fixedlength" lineContinuationCharacter="&#x10;&#x13;">
    <!-- record layout... -->
  </stream>

</beanio>

请注意,我还没有对此进行过测试,但根据文档,这应该可行。