0
public void fetchcontent() throws IOException
            {
                    this.open();
                    ContentValues values = new ContentValues();
                    String csvFilename = "/mnt/sdcard/content.csv";
                   // ArrayList<String> al=new ArrayList();
                    CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
                    String row[] = null;
                    while((row = csvReader.readNext()) != null) {
                       st1 = row[0];
                       st2= row[1];
                       st3= row[2];
                       st4= row[3];
                       st5= row[4];
                       values.put(DatabaseHandler.Column1,st1);
                       values.put(DatabaseHandler.Column2,st2);
                       values.put(DatabaseHandler.Column3,st3);
                       values.put(DatabaseHandler.Column4,st4);
                       values.put(DatabaseHandler.Column5,st5);
                      database.insert(DatabaseHandler.Table_Name, null, values);
                       }
                    csvReader.close(); 
                MainActivity.tt1.append("\ncontent table created");
            }

这是我在我创建的表中插入的代码,它给出了 java lang arrayindexoutofbound 异常错误我如何删除它请帮助我的 logcat 显示这个

02-21 16:27:54.308: E/AndroidRuntime(12511): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.webdata/com.example.webdata.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3

好的,正如你们中的一些人提到的那样,我确实删除了 st4 和 st5 语句,它工作了一段时间,但现在我得到了索引 2 的相同错误,现在我的数组长度是 2,但你们之前都建议它是 3,什么这里错了,我错过了什么吗??/

4

3 回答 3

1
st4= row[3]; 

不起作用,因为数组行的长度为 3。

大多数人都告诉您完全删除使用第 3 和第 4 字段,但是如果您想使用默认值,那么您应该为此添加一个检查,如果没有相应的数据,则在数据库中插入空数据。

像这样的东西:

if (row[3] != null) {
    st3 = row[3];
} else {
    st3 = "";
}
于 2013-02-21T11:06:41.267 回答
0

这表明您的 CSV 文件:/mnt/sdcard/content.csv或 CSV 文件中的至少一行只有三列。

请参阅:java.lang.ArrayIndexOutOfBoundsException: length=3; index=3表示数组中只有 3 个项目,并且您尝试 tio 访问索引 3 处的项目(最大值为 2)

不试一下:

st4= row[3];
st5= row[4];

values.put(DatabaseHandler.Column4,st4);
values.put(DatabaseHandler.Column5,st5);
于 2013-02-21T11:03:48.303 回答
0
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3*emphasized text*

异常表示数组包含 3 个元素,但您尝试访问 5 个元素。

于 2013-02-21T11:05:01.837 回答