使用Spring Batch解析多节文件

时间:2014-05-16 18:28:31

标签: java spring-batch

我想使用Spring Batch来解析以下多节文件。

  1. 标题垂直列出
  2. 标题数量从一个文件更改为下一个
  3. 有多个,不同的"开始/结束"令牌
  4. 每个部分(元,头,数据,页脚)需要不同的映射器/标记器
  5. 有什么想法吗?

    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
    

1 个答案:

答案 0 :(得分:0)

唯一的方法是编写自定义ItemReader<>解析每个部分并返回一个自定义bean:一个用于标头的bean和一个用于START-OF-FIELDS部分的bean作为准备(将此数据存储到步骤执行上下文中)。
关于START-OF-DATA / END-OF-DATA部分:可以使用之前收集的标头bean,使用自定义FlatFileItemReader(自定义,因为您需要在END-OF-DATA而非经典EOF上停止)来解析数据用于行映射。
我希望这可以是一个好的开始。