[英]parsing file with spring batch ItemReader
在我的 spring 批处理应用程序中,我配置了一个FlatFileItemReader
如下:
public PositionRowReader() {
reader = new FlatFileItemReader<>();
reader.setLinesToSkip(1); //skip header row
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(";");
tokenizer.setStrict(false);
tokenizer.setNames(PosFieldSetMapper.COLUMN_NAMES);
DefaultLineMapper<PosRow> posLineMapper = new DefaultLineMapper<>();
posLineMapper.setLineTokenizer(tokenizer);
posLineMapper.setFieldSetMapper(new PosFieldSetMapper());
posLineMapper.afterPropertiesSet();
reader.setLineMapper(posLineMapper);
}
在我正在阅读的file
中,我可以拥有不想处理并想忽略的数据,例如:
20180123;ABC;00001;
20180123;ABC;00001;
;;;
;;;
我想忽略带有 ;;; 的行,换句话说,它们只是空的。 有没有办法做到这一点? 我也有一个FieldSetMapper
。
目前我正在获取异常,例如:
org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 2253 in resource=[file [...]], input=[;;;;;;;;]
我在 FieldSetMapper 上检查了空:
if (!fieldSet.readString("client").isEmpty()) {
pos.setSedol(fieldSet.readString("client"));
}
然后在 ItemProcessor process() 方法上,我检查值中的 Null:
if (!line.isValid()) {
return null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.