因此,我有一个自定义类,它扩展了我用于编写CSV文件的FlatFileItemWriter。基于一些条件,我想完成我的第一个文件,然后写入一个新的文件。有没有办法用FlatFileItemWriter做到这一点?Spring批处理 - FlatFileItemWriter写入文件,关闭它,写入新文件
这里是我的代码示例:
@Override
public void write(List extends MyObject> items) throws Exception {
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
int currentFileIncrememnt = (int) stepContext.get("currentFileIncrement");
if(currentFileIncrement== fileIncrement) {
super.write(items);
}
else {
super.close();
fileIncrement = currentFileIncrement;
super.setHeaderCallback(determineHeaderCallback());
super.setResource(new FileSystemResource("src/main/resources/" + fileIncrement+ ".csv"));
super.setShouldDeleteIfExists(true);
DelimitedLineAggregator delLineAgg = new DelimitedLineAggregator<>();
delLineAgg.setDelimiter(",");
BeanWrapperFieldExtractor fieldExtractor = new BeanWrapperFieldExtractor<>();
fieldExtractor.setNames(new String[] {"id", "amount"});
delLineAgg.setFieldExtractor(fieldExtractor);
super.setLineAggregator(delLineAgg);
super.write(items);
}
}
2017-04-07
Locke
+0
希望这给了一些见解http://stackoverflow.com/questions/30092149/spring-batch-write-multiple-files-based-on-records-count –