Пропустить количество строк нижнего колонтитула в пакете Spring
Я использую FlatFileItemReader
читать плоский файл с разделителями. Пока я мог пропустить количество заголовков с полем linesToSkip
Я не смог пропустить нижние колонтитулы по количеству строк.
1 ответ
Решение
Вы можете создать собственный маппер, в котором вы можете пропустить совпадение с регулярным выражением или номер строки.
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);
}
}
Наконец зарегистрируйте пользовательский преобразователь строк в FlatFileItemReader
CustomLineMapper lineMapper = new CustomLineMapper();
lineMapper.setTotalItemsToRead(totalLinesInFile - numberOfLinesToSkipInFooter);
FlatFileItemReader<FieldSet> reader = new FlatFileItemReader<>();
// skip headers
reader.setLinesToSkip(linesToSkipInHeader);
// skip footer
reader.setLineMapper(lineMapper);