2014-05-16 59 views
0

我想用Spring批解析下面的多節文件。用Spring批解析多節文件

  1. 集管被垂直列出
  2. 的報頭中的變化從一個文件到下一個
  3. 有多種,不同的「開始/結束」令牌
  4. 每個部分(間,頭部,數據數,頁腳)需要不同的映射器/標記器

任何想法?

START-OF-FILE 
PROGRAMNAME=getdata 
DATEFORMAT=yyyymmdd 

START-OF-FIELDS 
ID 
NAME 
END-OF-FIELDS 

TIMESTARTED=Tue May 6 16:17:15 EDT 2014 
START-OF-DATA 
0|craig| 
1|john| 
2|tim| 
3|| 
END-OF-DATA 
DATARECORDS=4 
TIMEFINISHED=Tue May 6 16:49:38 EDT 2014 
END-OF-FILE 

回答

0

的唯一方法是編寫自定義ItemReader <>該解析每個部分和返回自定義豆:用於START-OF-FIELDS部作爲製備(存儲該數據到步驟執行上下文)一種豆的標頭和一個豆。
START-OF-DATA/END-OF-DATA部分:可以使用自定義的FlatFileItemReader(自定義因爲您需要在END-OF-DATA而不是在傳統的EOF上停止)使用之前收集的頭部Bean進行行映射來解析數據。
我希望這可以是一個好的開始。