2015-04-16 64 views
0

我很新的BeanIO,它解決了我的大部分問題,但我無法弄清楚如何解決這個問題之一:如何處理多行的固定長度文件,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應該是什麼或者我需要重寫哪些類,以便我可以正確讀取這種類型的格式。

回答

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> 

請注意,我沒有測試過這一點,但根據文檔這應該工作。

+0

如果您有單個字符,此方法效果良好。在我的情況下,我需要一種方法來識別與999不同的任何東西,這不是一個可用的選項。 –