我有一个项目处理器,它获得一行/一行的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;
}
}
答案 0 :(得分:1)
这不是ItemProcessor问题,而是ItemWriter问题(ItemProcessors用于更新和过滤)。查看ClassifierCompositeItemWriter。它将允许您注入一个返回要写入的相应ItemWriter的Classifier。您可以在此处详细了解:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/support/ClassifierCompositeItemWriter.html