首页 > 解决方案 > Spring Batch:从 txt 文件中读取并将所有行作为单个字符串返回给处理器

问题描述


我正在尝试从 Spring Batch 中的文件中读取文本,但我需要所有行作为单个字符串到达.processor​​而不是逐行。我.setRecordSeparatorPolicyFlatFileItemReader. 有没有其他方法可以实现这一目标?也许是另一种阅读器之类的?

任何帮助将非常感激

public ItemStreamReader<String> stringReader() throws IOException {
    Resources[] resources.. // load files here
    MultiResourceItemReader<String> reader = new MultiResourceItemReader<String>();
    reader.setResources(resources);
    reader.setDelegate(flatFileItemReader()); //sets FlatFileIteamReader

    return reader;
}

@Bean
public TaskletStep managerStep() throws Exception {
    return managerStepBuilderFactory.get("managerStep")
            .<String, String>chunk(6)
            .reader(stringReader())
            .processor(myProcessor()) //all lines as 1 String here per File
            .writer(doSomething())
            .build();
}

标签: javaspringspring-batch

解决方案


块处理模型是为面向项目的用例设计的。如果您只有一个项目,我看不到使用面向块的步骤的任何附加价值。一个简单的tasklet更合适。


推荐阅读