我使用SuperCSV来解析CSV文件。它完美无瑕。 我传递的CSV文件中可能包含一些无效记录。那时,是否可以记录未处理哪一行?
List<InputBean> csvContentsList = new ArrayList<InputBean>();
ICsvBeanReader beanReader = new CsvBeanReader(fileReader, CsvPreference.STANDARD_PREFERENCE);
InputBean bean = null;
do {
try {
bean = beanReader.read(InputBean.class, header, getProcessors());
if (bean != null)
csvContentsList.add(bean);
} catch (Exception e) {
logger.error("Error in parsing the record:"+e.getMessage());
}
} while (bean != null);
在此代码中,如果CSV文件包含无效记录,则会抛出错误并将其捕获到catch块中。怎么可能打印出无效记录?或它的行号?
答案 0 :(得分:0)
如果在使用beanreader.read(...)
方法处理CSV文件时存在无效行,那么文档会说明SuperCsvException
会引发CsvContext
方法,getCsvContext()
方法 <!-- Angular Material Dependencies -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.11.2/angular-material.min.js"></script>
从中您可以获得各种上下文信息,包括行号。所以你应该更加具体地捕捉并妥善处理它。
相关文档:
https://super-csv.github.io/super-csv/apidocs/org/supercsv/io/ICsvBeanReader.html
https://super-csv.github.io/super-csv/apidocs/org/supercsv/util/CsvContext.html