我们可以在需要跳过第一行和最后一行的文件上使用 Spring batch Item Reader 和 Writer 吗?

Can we use Spring batch Item Reader and Writer on a file which needs to skip first and last line?

我有一个文件要在进行一些验证后写入数据库。该文件将有 Header 和 Trailer 需要验证然后跳过,如果满足验证,则应将其间的所有行映射并加载到数据库中。我可以使用 Item Reader 和 Writer 来做到这一点吗?下面是一个示例文件数据,它有一个 header 行,一个尾部行和它们之间的行,其中包含要加载到 db 的实际数据。感谢任何帮助。

HEADER|xxxxx|20190405T143025Z 线数据|线数据|线数据|线数据|||线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据|线数据

拖车|20190405T143025Z|1

p.s: 我是一名 IIB 开发人员,这是我第一次使用 spring 批处理。

您可以分两步分解需求:

  • 第 1 步:执行验证逻辑的简单 tasklet(查找 header/trailer 记录并验证它们)。这一步的成功为下一步pre-condition
  • 第 2 步:仅当第 1 步成功时才触发的 chunk-oriented tasklet,它会跳过带有 FlatFileItemReader.setLinesToSkip(1) 的 header 并跳过带有开始过滤记录的处理器的尾部TRAILER.