java - 跳过 Spring 批处理中的页脚行数

标签 java spring spring-batch flatfilereader

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

最佳答案

您可以创建自定义行映射器,在其中您可以按正则表达式匹配或行号跳过。

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);

关于java - 跳过 Spring 批处理中的页脚行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278568/

相关文章:

spring-batch - 在跳过情况下禁用 Spring Batch 单项处理

java - SpringBatch itemReader 使用大量内存

java - FieldSet readString 方法不读取前导空格

java - 哪些类可以在部署到 Google App Engine 的 GWT 应用程序中使用?

java - 使用 Spring Boot 创建 RESTful Web 服务

java - 如何使用 javax.json 包读取 JSON 文件?

spring - 如何为 tomcat 6 及其部署的 webapps 正确配置 JNDI?

java - Guice 子模块阻止继承绑定(bind)

java - 为什么 Spring Rest 服务在第一次请求时很慢?

java - JPA 在创建后返回嵌套对象 - 500 内部服务器错误