Java报错数组越界,如何解决?

Java 报错数组越界

public class TestBufferStream {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //创建一个账户
    User u = new User("011111" , "xxx" , "1234567" , '男' , "xx" , "管理员");
    //创建一个文件对象
    File f = new File(DatabaseConfig.USER_FILE_PARH);
    FileWriter fw = null;
    BufferedWriter bw = null;
    try {
        //创建一个字节流输出对象
        fw = new FileWriter(f , true);
        
        bw = new BufferedWriter(fw);
        //调用write方法
        bw.write(u.toString().toCharArray());         //User转换为字节数组
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        try {
            if (bw != null) {
                bw.close();
            }
            if (fw != null) {
                fw.close();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    FileReader fr =null;
    BufferedReader br = null;
    try {
         fr = new FileReader(f);
         br = new BufferedReader(fr);
        String line;
        String[] userArrey;
        User u1;
        while ((line = br.readLine())!=null)
        {
            System.out.println(line);
            //
            userArrey = line.split(" : ");

/**

  •                 for (String s :userArrey) {
    
  •                   System.out.println(s);
              }
    
  • /
                   u1 = new User(userArrey[0] , userArrey[1] , userArrey[2] , userArrey[3].charAt(0) , userArrey[4] , userArrey[5]);
                   System.out.println(u1.getName());
           }
       } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }finally
       {
           if (br != null)
           {
               try {
                   br.close();
               } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               }
               if (fr != null)
               {
                   try {
                       fr.close();
                   } catch (IOException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }
               }
           }
    
    }
    }
    }

img

你的 userArrey 这个数组size是1,最多就 userArrey[0] 会有值。看看你文件里的数据格式是不是无法根据" : " 分割

把你读取的文件内容贴一下呀