0
我正在嘗試讀取CSV文件,然後根據該CSV文件創建一個新對象。我可以成功地用SuperCSV庫做到這一點,但如果發生錯誤(如特定的單元格爲空),則會引發錯誤(如預期的那樣)。我試圖收集一個ArrayList中的所有錯誤,但現在在第一個異常時,一切都將停止。即使處理器出現錯誤,如何讓SuperCSV CsvBeanReader繼續到下一行?我有try/catch塊內的循環條件。代碼如下:Java SuperCV CsvBeanReader儘管出錯仍然繼續
ArrayList<Duplicate> duplicates = new ArrayList<Duplicate>();
ArrayList<BadProperty> invalidProperties = new ArrayList<BadProperty>();
File convFile = new File(file.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes());
fos.close();
ICsvBeanReader beanReader = null;
try {
beanReader = new CsvBeanReader(new FileReader(convFile), CsvPreference.STANDARD_PREFERENCE);
final String[] header = beanReader.getHeader(true);
final CellProcessor[] processors = getProcessors();
Property property;
while ((property = beanReader.read(Property.class, header, processors)) != null) {
// logic in here
}
}
catch(SuperCsvException e) {
invalidProperties.add(new BadProperty(e.getCsvContext()));
System.out.println(e);
}
finally {
if(beanReader != null) {
beanReader.close();
}
}