【问题标题】:Skip number of footer lines in Spring batch在 Spring 批处理中跳过页脚行数
【发布时间】:2017-07-24 10:45:38
【问题描述】:

我正在使用FlatFileItemReader 读取分隔的平面文件。虽然我可以跳过带有字段 linesToSkip 的页眉数量,但我无法按行数跳过页脚。

【问题讨论】:

    标签: java spring spring-batch flatfilereader


    【解决方案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);
    

    【讨论】:

    • 如何获取 totalLinesInFile 值。如果我使用 xml 配置怎么办
    • 好收获。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2013-07-30
    相关资源
    最近更新 更多