2015-06-29 57 views
0

我有一種情況需要解析複雜的平面文件,每個記錄分散到多行,如下所示。 BFT ICVMORDR1400210IJ5 *P* 00800RRJNZM 1EK19 1EL ***** 101 00800RRJNZM ******************* 5 201 00800RRJNZM ******************* 5 202 00800RRJNZM ******************* 5 203 00800RRJNZM ******************* 5 204 00800RRJNZM ******************* 5 205 00800RRJNZM ****************** 5 206 00800RRJNZM ****************** 5 301 00800RRJNZM ****************** 5 302 00800RRJNZM ****************** 59401 我有文件的標題行,詳細的記錄分散到最後的100,200,300,400系列等4種不同類型的記錄。如何使用Spring Batch解析這個複合體。如何使用SPring批量讀取複雜輸入模式

+0

喜@vinay - 你可以給你的輸入文件格式,例如兩行。可以讀取文件並使用固定長度映射器映射它。使用不同的處理器配置,你可以做任何你想做的事情。只需給一些高亮燈 - –

+0

排的長度是多少?第一參數最小/最大長度,第二參數最小最大長度等等。如果您有要映射的輸入的模型類,則在此處顯示它。它將有助於回答你的問題 –

+0

整個記錄分散到多行,可以是11到15行,但是記錄類型定義了給定記錄中的結束行。每行是80個字符長度,但第一行是主記錄哪一端以100或101或..以及第二行和幾行200以及第三類是300系列,第四類是400系列...... – vinay

回答

0

讀取一個行的記錄 - 你可以在烏拉圭回合xml文件中使用下面的配置 -

<bean id="customlineTokenizer" 
     class="org.springframework.batch.item.file.transform.FixedLengthTokenizer"> 
     <property name="columns" value="1-5,6-10" /> 
     <property name="names" value="firstname,lastname" /> 
    </bean> 

     <bean id="customFieldSetMapper" class="com.mkyong.model.ReportFieldSetMapper" /> 


<bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader"> 
    <property name="strict" value="false" /> 
    <property name="resource" value="classpath:report1" /> 
    <property name="lineMapper"> 
     <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper"> 
      <property name="lineTokenizer" ref="customlineTokenizer" /> 
      <property name="fieldSetMapper" ref="customFieldSetMapper" > 
      </property> 
     </bean> 
    </property> 

</bean> 
+0

這不是一行..我的要求將單條記錄分散到多行。 – vinay

相關問題