我正在使用弹簧批处理和扁平文件条目阅读器来读取.CSV 文件。文件具有页眉(第一行)、详细信息和页脚(最后一行)。因此,我想通过页脚行验证详细信息的总数。
这是我.csv文件的示例。
电影.csv
名称|类型|诺丁山|
浪漫喜剧|1999
年玩具总动员3|动画|2010
美国队长3:第一复仇者|动作|2011
3
从示例文件
第一行是标题(我忽略它)。
第 2-4 行是细节行,最后是页脚。
我想读取页脚并获取值(最后一行= 3),
然后,获取详细信息的总数(在这种情况下,我们有3行),
最后我将验证页脚(3)的总数,详细信息记录的总数(3)是否相等?
这是我的代码。
@Bean
@StepScope
public FlatFileItemReader<Movie> movieItemReader(String filePath) {
FlatFileItemReader<Movie> reader = new FlatFileItemReader<>();
reader.setLinesToSkip(1); //skip header line
reader.setResource(new PathResource(filePath));
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer("|");
DefaultLineMapper<Movie> movieLineMapper = new DefaultLineMapper<>();
FieldSetMapper<Movie> movieMapper = movieFieldSetMapper();
movieLineMapper.setLineTokenizer(tokenizer);
movieLineMapper.setFieldSetMapper(movieFieldSetMapper);
movieLineMapper.afterPropertiesSet();
reader.setLineMapper(movieLineMapper);
return reader;
}
public FieldSetMapper<Movie> movieFieldSetMapper() {
BeanWrapperFieldSetMapper<Movie> movieMapper = new BeanWrapperFieldSetMapper<>();
movieMapper.setTargetType(Movie.class);
return movieMapper;
}
喵喵时光机
莫回无
随时随地看视频慕课网APP
相关分类