【发布时间】:2018-05-07 13:15:05
【问题描述】:
我有平面文件,.csv 文件它有 5 个五个字段。如果所有五个字段都存在,则文件处理运行良好。但是如果不小心,如果5个字段没有输入,如下所示
d,e,f,g,h
a,b,c
d,e,f,g,h
程序崩溃。我想继续阅读到下一行。
错误是org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record
下面是代码。
如何继续阅读到第三行?我希望读取第一行,跳过第二行,读取第三行。
FlatFileItemReader<CustomerBatch> reader = new FlatFileItemReader<>();
DelimitedLineTokenizer delimitedTokeniser = new DelimitedLineTokenizer();
delimitedTokeniser.setNames(new String[]{ "a", "b","c","d","e" });
DefaultLineMapper<CustomerBatch> lineMapper = new DefaultLineMapper<CustomerBatch>();
lineMapper.setLineTokenizer(delimitedTokeniser);
lineMapper.setFieldSetMapper(new BeanWrapperFieldSetMapper<CustomerBatch>() {{setTargetType(CustomerBatch.class);}});
ByteArrayResource y= new ByteArrayResource(batchFile.getBytes());
reader.setResource(y);
reader.setLineMapper(lineMapper);
reader.setLinesToSkip(1); //do not read the first line of the csv file.
reader.open(new ExecutionContext());
try {
while ((newCustomerBatch = reader.read()) != null) {
System.out.println("name:"+newCustomerBatch.getName());
//some logic.
}
}catch(Exception e) {
}
}
【问题讨论】:
标签: java spring-boot spring-batch