使用opencsv时出现ArrayIndexOutOfBoundsException错误

时间:2016-03-21 20:24:49

标签: java opencsv

我希望有人可以告诉我为什么我收到错误:"线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:1"

我使用opencsv从csv插入数据,代码确实有效,因为数据按预期插入到表中。但是我得到了错误。

以下是我的代码:

    PreparedStatement sql_statement = null;         
    String jdbc_insert_sql = "INSERT INTO wifi_users(email, first_name, last_name, gender, birthday, opted_in) VALUES (?, ?, ?, ?, ?, ?)";
    sql_statement = conn.prepareStatement(jdbc_insert_sql);

    /* Read CSV file in OpenCSV */
    String inputCSVFile = "/Users/Gerry/Documents/workspace/sql_out_connection/users.csv";
    CSVReader reader = new CSVReader(new FileReader(inputCSVFile));

    /* Variables to loop through the CSV File */
    String [] nextLine; /* for every line in the file */ 
    int lnNum = 0; /* line number */
    while ((nextLine = reader.readNext()) != null) {
            lnNum++;                    
            sql_statement.setString(1,(nextLine[0]));
            sql_statement.setString(2,(nextLine[1]));
            sql_statement.setString(3,(nextLine[2]));
            sql_statement.setString(4,(nextLine[3]));
            sql_statement.setString(5,(nextLine[4]));
            sql_statement.setDouble(6,Double.parseDouble(nextLine[5]));
            /* execute the insert statement */
            sql_statement.executeUpdate();
    }   

任何人都知道我为什么会收到此错误?

1 个答案:

答案 0 :(得分:2)

CSV文件中的一行少于预期的最小值6(0-5),因此是一个ArrayIndexOutOfBoundsException。

在继续进行数据库更新之前,您应该验证是否需要6个值。

您不需要围绕您的值BTW添加括号。这样更好......

sql_statement.setString(1, nextLine[0]);