可以将ItemProcessor写入两个不同的文件吗?

时间:2013-10-02 21:29:05

标签: spring-batch

我有一个项目处理器,它获得一行/一行的FieldSet计数,如果等于5,则它通过FlatFileItemWriter将记录写入文件(比如goodRecords.csv)。但我也想把不等于5的记录写成另一个文件(比如badRecords.csv)。是否可以使用一个ItemProcessor进行此任务?

这是我的ItemProcessor代码:

    @Override
public FieldSet process(FieldSet line) throws Exception {
    // TODO Auto-generated method stub
    int x = line.getFieldCount();
    if(x==5){
        return line;
    }else{
        return null;
    }

}

1 个答案:

答案 0 :(得分:1)

这不是ItemProcessor问题,而是ItemWriter问题(ItemProcessors用于更新和过滤)。查看ClassifierCompositeItemWriter。它将允许您注入一个返回要写入的相应ItemWriter的Classifier。您可以在此处详细了解:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/support/ClassifierCompositeItemWriter.html