Spring batch 使用Spring批处理将固定长度的对象字段写入文件

Spring batch 使用Spring批处理将固定长度的对象字段写入文件,spring-batch,Spring Batch,SpringBatch提供了FixedLengthTokenizer来读取数据,但我没有看到FixedLengthLineAggreator。如何将一个对象写入平面文件中,不同的字段应以固定长度写入该文件中 您可以使用FormatterLineAggregator执行此操作。只需使用设置字段和格式即可 @Bean 公共FormatterLineAggregator myLineAggregator(){ FormatterLineAggregator lineAggregator=新的Forma

SpringBatch提供了FixedLengthTokenizer来读取数据,但我没有看到FixedLengthLineAggreator。如何将一个对象写入平面文件中,不同的字段应以固定长度写入该文件中

您可以使用
FormatterLineAggregator
执行此操作。只需使用设置字段和格式即可

@Bean
公共FormatterLineAggregator myLineAggregator(){
FormatterLineAggregator lineAggregator=新的FormatterLineAggregator();
lineAggregator.setFieldExtractor(myBeanWrapperFieldExtractor());
lineAggregator.setFormat(“%-5s%-09d%20s”);
回流管集热器;
}
@豆子
公共BeanRapPerfielDextractor MyBeanRapPerfielDextractor(){
BeanWrapperFieldExtractor字段提取器=新的BeanWrapperFieldExtractor();
setNames(新字符串[]{“fieldOne”、“fieldTwo”、“fieldThree”});
回流场提取器;
}
@Bean
public FormatterLineAggregator<MyObject> myLineAggregator() {
    FormatterLineAggregator<MyObject> lineAggregator = new FormatterLineAggregator<>();
    lineAggregator.setFieldExtractor(myBeanWrapperFieldExtractor());
    lineAggregator.setFormat("%-5s%-09d%20s");
    return lineAggregator;
}

@Bean
public BeanWrapperFieldExtractor<MyObject> myBeanWrapperFieldExtractor() {
    BeanWrapperFieldExtractor<MyObject> fieldExtractor = new BeanWrapperFieldExtractor<MyObject>();
    fieldExtractor.setNames(new String[]{"fieldOne", "fieldTwo", "fieldThree"});
    return fieldExtractor;
}