使用opencsv读取2列csv文件时发生数组越界错误

uhry853o  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(271)

我正在使用opencsv库读取一个2列csv,我想将这2列作为键值对放在Map中。然而,每当csv中有空行时,我就会得到数组索引越界异常。有什么办法可以避免吗?这是我的代码:

Map<String, String> map = new HashMap<>();
    CSVReader csvReader;
    try (FileReader filereader = new FileReader(path)) {
        csvReader = new CSVReader(filereader);
        String[] nextRecord;
        while ((nextRecord = csvReader.readNext()) != null) {
            if (nextRecord[0] != null && nextRecord[1] != null) {
                map.put(nextRecord[0], nextRecord[1]);
            }
        }

    } catch (Exception e) {
        System.out.print(e);
    }
koaltpgm

koaltpgm1#

一系列 nextRecord 可能为空,因此在为其编制索引之前需要检查长度
改变

if(nextRecord[0]!=null && nextRecord[1]!=null){
     map.put(nextRecrod[0],nextRecord[1]);
}

if(nextRecord.length ==2 && nextRecord[0]!=null && nextRecord[1]!=null){
     map.put(nextRecrod[0],nextRecord[1]);
}

相关问题