Java 异常后继续超级SV读取
是否有方法在引发单元处理器异常后继续从CSV读取?我试图从一个文件中获取所有好的数据,用它做我需要的事情,然后向用户报告出现了什么(如果有的话)坏的行。例如,如果我有一个只有两列的文件(name,active)。Name只是一个字符串,active是一个布尔值。在我的CellProcessor列表中,两者都不是可选的。如果一行的活动列为null,我希望以后继续处理这些行Java 异常后继续超级SV读取,java,supercsv,Java,Supercsv,是否有方法在引发单元处理器异常后继续从CSV读取?我试图从一个文件中获取所有好的数据,用它做我需要的事情,然后向用户报告出现了什么(如果有的话)坏的行。例如,如果我有一个只有两列的文件(name,active)。Name只是一个字符串,active是一个布尔值。在我的CellProcessor列表中,两者都不是可选的。如果一行的活动列为null,我希望以后继续处理这些行 Name, Active Bob, 0 John, 1 Mary, Harry, 1 在这种情况下,第4行Mary将失败。
Name, Active
Bob, 0
John, 1
Mary,
Harry, 1
在这种情况下,第4行Mary将失败。我想一直读到第五行。所有示例都显示了在EoF之前使用while循环进行读取,我没有找到一种方法来获取当前的行数,这样我就可以使用带有内部try/catch块的for循环。我自己做了一些测试,并提出了一种解决方法。这当然不理想。我希望上个月在Git问题中提到的tryRead或hasNext的一个版本能够实现,但这在那之前是有效的
boolean failed = false;
do {
try {
failed = false;
while( (myClassBean= beanReader.read(MyClass.class, processors)) != null ) {
//Process the bean as normal
}
}
catch (SuperCsvCellProcessorException sccpe) {
//process the exception
failed = true;
}
} while (failed);
bean阅读器在保持其在csv中的位置方面似乎没有任何问题,因此所有后续的do迭代都会继续从下一行(如果有的话)读取。当达到EoF时,两个循环根据需要终止