2017-07-24 6 views

Antwort

0

Sie können einen benutzerdefinierten Linien-Mapper erstellen, in dem Sie entweder die Regex-Übereinstimmung oder die Zeilennummer überspringen können.

public class CustomLineMapper extends DefaultLineMapper<FieldSet> { 
    @Setter 
    private int totalItemsToRead; 
    @Override 
    public FieldSet mapLine(String line, int lineNumber) throws Exception { 
     if(lineNumber > totalItemsToRead){ 
      return null; 
     } 
     return super.mapLine(line, lineNumber); 
    } 
} 

registrieren schließlich die benutzerdefinierte Linie Mapper die FlatFileItemReader

CustomLineMapper lineMapper = new CustomLineMapper(); 
    lineMapper.setTotalItemsToRead(totalLinesInFile - numberOfLinesToSkipInFooter); 

FlatFileItemReader<FieldSet> reader = new FlatFileItemReader<>(); 
// skip headers 
reader.setLinesToSkip(linesToSkipInHeader); 
// skip footer 
reader.setLineMapper(lineMapper);