如何使用Spring Batch跳过空行

问题描述 投票:0回答:1

我正在使用Spring Batch阅读固定长度的平面文件,我想跳过空行和不正确的行进行批处理。在示例下面,我还想跳过以字符“ ------”开头的行。

您能帮我使用跳过政策或其他方式举个例子吗?

我的文件:

---------------------------A---------------------------

AARON THIAGO LOPES                       3099234 100-11

AARON PAPA DA SILVA                      8610822 160-26

ABNER MENEZEZ SOUZA                      1494778 500-35

EDSON EDUARD MOZART                      1286664 500-34 


//Method that reads the file.

@Configuration
@EnableBatchProcessing
public class SpringBatchConfig {

    @Bean
    public Job job(JobBuilderFactory jobBuilderFactory,
                   StepBuilderFactory stepBuilderFactory,
                   ItemReader<Aluno> itemReader,
                   ItemWriter<Aluno> itemWriter){

        Step step = stepBuilderFactory.get("ETL-file-load")
                .<Aluno, Aluno>chunk(100)
                .reader(itemReader)
                .writer(itemWriter)
                .build();

        return jobBuilderFactory.get("ETL-Load")
                .incrementer(new RunIdIncrementer())
                .start(step)
                .build();
    }

    @Bean
    public FlatFileItemReader<Aluno> itemReader(@Value("${input}") Resource resource) {
        FlatFileItemReader<Aluno> flatFileItemReader = new FlatFileItemReader<>();
        flatFileItemReader.setResource(resource);
        flatFileItemReader.setName("CSV-Reader");
        flatFileItemReader.setLinesToSkip(2);
        flatFileItemReader.setLineMapper(lineMapper());
        return flatFileItemReader;
    }
java spring spring-batch flat-file fixed-length-file
1个回答
0
投票

您几乎可以从此答案中复制并粘贴代码:

How to skip blank lines in CSV using FlatFileItemReader and chunks

© www.soinside.com 2019 - 2024. All rights reserved.