Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异常后继续超级SV读取_Java_Supercsv - Fatal编程技术网

Java 异常后继续超级SV读取

Java 异常后继续超级SV读取,java,supercsv,Java,Supercsv,是否有方法在引发单元处理器异常后继续从CSV读取?我试图从一个文件中获取所有好的数据,用它做我需要的事情,然后向用户报告出现了什么(如果有的话)坏的行。例如,如果我有一个只有两列的文件(name,active)。Name只是一个字符串,active是一个布尔值。在我的CellProcessor列表中,两者都不是可选的。如果一行的活动列为null,我希望以后继续处理这些行 Name, Active Bob, 0 John, 1 Mary, Harry, 1 在这种情况下,第4行Mary将失败。

是否有方法在引发单元处理器异常后继续从CSV读取?我试图从一个文件中获取所有好的数据,用它做我需要的事情,然后向用户报告出现了什么(如果有的话)坏的行。例如,如果我有一个只有两列的文件(name,active)。Name只是一个字符串,active是一个布尔值。在我的CellProcessor列表中,两者都不是可选的。如果一行的活动列为null,我希望以后继续处理这些行

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时,两个循环根据需要终止