Java 使用spring批处理ItemReader解析文件

Java 使用spring批处理ItemReader解析文件,java,spring,spring-batch,Java,Spring,Spring Batch,在我的spring批处理应用程序中,我配置了一个FlatFileItemReader,如下所示: public PositionRowReader() { reader = new FlatFileItemReader<>(); reader.setLinesToSkip(1); //skip header row DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(";");

在我的spring批处理应用程序中,我配置了一个
FlatFileItemReader
,如下所示:

public PositionRowReader() {

    reader = new FlatFileItemReader<>();

    reader.setLinesToSkip(1); //skip header row

    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(";");
    tokenizer.setStrict(false);
    tokenizer.setNames(PosFieldSetMapper.COLUMN_NAMES);

    DefaultLineMapper<PosRow> posLineMapper = new DefaultLineMapper<>();
    posLineMapper.setLineTokenizer(tokenizer);
    posLineMapper.setFieldSetMapper(new PosFieldSetMapper());
    posLineMapper.afterPropertiesSet();


    reader.setLineMapper(posLineMapper);
我想忽略带;;;,的行;;;,换句话说,它们只是空的。我有办法做到这一点吗?我还有一个
FieldSetMapper

目前我正在获取例外情况,例如:

20180123;ABC;00001;  
20180123;ABC;00001;
;;;
;;;
org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 2253 in resource=[file [...]], input=[;;;;;;;;]

我在FieldSetMapper上检查是否为空:

if (!fieldSet.readString("client").isEmpty()) {
        pos.setSedol(fieldSet.readString("client"));
    }
然后在ItemProcessor process()方法上检查值是否为Null:

  if (!line.isValid()) {
            return null;
        }
可能重复的