我正在使用 FlatFileItemReader
读取一个 csv 文件,并使用 FieldSetMapper
将其映射到域对象。
如果映射失败,我希望由 FlatFileItemReader
读取原始行,以便我可以将其写入另一个 csv 文件。
我最初的想法是使用一些监听器将读取的字符串推送到 StepContext
,然后使用 SkipListener
获取字符串以将其写入另一个文件。但是我找不到一种方法来捕获 FlatFileItemReader
读取的原始行。
建议?
最佳答案
执行 ItemReadListener 的 onReadError(Exception) 方法界面正是您所需要的。
public void onReadError(Exception e) {
if(e instanceof FlatFileParseException) {
FlatFileParseException ffpe = (FlatFileParseException) e;
ffpe.getLineNumber(); //The line number error occured
ffpe.getInput();//Text value of the unparsed line
}
}
关于spring - 使用 FlatFileItemReader 捕获读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278027/