当 SuperCSV 失败时在日志中添加错误行
adding the error line in log when SuperCSV fails
我正在使用 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 块中捕获。如何打印无效记录?或者它的行号?
如果在使用 beanreader.read(...)
方法处理 CSV 文件时有无效行,那么文档会说 SuperCsvException
被抛出,您可以从中使用方法 [=13] 询问 CsvContext
=] 从这里你可以获得各种上下文信息,包括行号。因此,请更具体地了解您捕获的内容并适当地处理它。
相关文档:
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
我正在使用 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 块中捕获。如何打印无效记录?或者它的行号?
如果在使用 beanreader.read(...)
方法处理 CSV 文件时有无效行,那么文档会说 SuperCsvException
被抛出,您可以从中使用方法 [=13] 询问 CsvContext
=] 从这里你可以获得各种上下文信息,包括行号。因此,请更具体地了解您捕获的内容并适当地处理它。
相关文档:
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