首页 > 解决方案 > Spring批量写入多行固定长度文件

问题描述

我需要在多行中写入固定长度的文件。示例输出应类似于

START000201706151038ABC0001                                                  
00A0123456788 20007100000000000000000050                                
00B1                                                                      
00C0                                                                      
00D000000000000000                                             0000       
00A0323456788 20007100000000000000000050                                
00B1                                                                      
00C0                                                                      
00D000000000000000                                             0000       
END00000000490000000000003670406000000000307845636                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

Start 是文件头,End 是文件的尾部。每个项目将有四行,例如上面的 00A,00B,00C,00D 代表每个项目四行。春季批次中是否有任何作家支持这一点?这个问题:Spring-Batch:将对象写入固定长度的行?是差不多的需求,但没有答案

标签: javaspringspring-batch

解决方案


春季批次中有没有支持这一点的作家?

您正在写入一个平面文件,因此您需要一个FlatFileItemWriter. 现在,如何聚合每行(也就是每个项目)由LineAggregator. 因此,您要寻找的不是作家,而是LineAggregator界面。

从最新的 Spring Batch 4.2.4 开始,没有内置的行聚合器可以做到这一点。您需要一个定制的来满足您的需求。


推荐阅读