Android app csv文件获取java.lang.ArrayIndexOutOfBoundsException:length = 1;索引= 1

时间:2017-09-11 19:34:54

标签: java android csv arraylist

我的原始文件夹中有一个csv文件,它有多列,我能够从第一列读取,它似乎产生csv文件中的所有数据,这不是我想要的,但是当我试着读下一个时,我得到了:

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

我尝试了以下编写代码的不同方法,并且我一直得到相同的结果,这里是csv文件的片段:

OrganisationID OrganisationCode

1421            RV9HE

任何人都可以告诉我我出错的地方以及为什么我一直都会这样做?

Caused by:java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 ?

我用这个把头发拉出来,可能是csv文件没有列,而我只是从csv文件的标题中读取?

private String OrganisationID;
private String OrganisationCode;

public String getOrganisationID() {
    return OrganisationID;
}

public void setOrganisationID(String organisationID) {
    OrganisationID = organisationID;
}

public String getOrganisationCode() {
    return OrganisationCode;
}

public void setOrganisationCode(String organisationCode) {
    OrganisationCode = organisationCode;
}
       while ((line = reader.readLine()) != null) {

            String[] RowData = line.split(",");

            String setId = RowData[0];
            String setCode = RowData[1];

            HospitalReader cur = new HospitalReader();
            cur.setOrganisationID(setId);
            cur.setOrganisationCode(setCode);

            this.add(cur);
        }

2 个答案:

答案 0 :(得分:0)

您需要将Commas放入csv文件中并删除

之间的任何额外行和空格
"OrganisationID","OrganisationCode",,,,
"1421","RV9HE",,,,

或者如果您想使用相同的文件

OrganisationID OrganisationCode
1421            RV9HE

然后你需要将参数更改为split方法

String[] RowData = line.split("[ ]+");

答案 1 :(得分:0)

我没有看到您的代码有任何问题,所以只是举个例子,希望您能够发现您的输入是否存在问题。

输入内容(xyz.csv):

"OrganisationID","OrganisationCode"
"1421","RV9HE"

代码:取自https://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/

    String csvFile = "xyz.csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";

    try {

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {

            // use comma as separator
            String[] txt = line.split(cvsSplitBy);

            System.out.println(txt[0] + "....." + txt[1]);

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

输出:

"OrganisationID"....."OrganisationCode"
"1421"....."RV9HE"