如何在Java编程中修复“线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException”

时间:2019-04-30 11:54:24

标签: java arrays indexoutofboundsexception

error image 我想查看我已经添加的数据,但是显示异常。可以参考图片

public static void viewRecord()throws IOException{
    File f= new File("file.txt");          // specify the file name and path here
    Scanner sc = new Scanner(f);
    System.out.println("ID  |Species    |Weight |Length |"
                       +"Num of working flippers|Time   |Date   |Location   |");
    while(sc.hasNextLine())
    {
        String currentLine= sc.nextLine();
        String[] tokens = currentLine.split("#");
        System.out.println(tokens[0]+"\t"+tokens[1]+"\t\t"
                           +tokens[2]+"\t"+tokens[3]+"\t"+tokens[4]+"\t\t"+tokens[5]+"\t"
                           +tokens[6]+"\t"+tokens[7]);
    }
    sc.close();
}

当我已经添加了它在文本文件中显示的数据而不是一行又一行的情况下,因为我已经添加了数据

1 个答案:

答案 0 :(得分:-3)

要避免ArryIndexOutOfBoundException,您必须检查tokens数组的大小,然后才能期望它具有8个元素:

while(sc.hasNextLine())
{
    String currentLine= sc.nextLine();
    String[] tokens = currentLine.split("#");
    if(tokens.length<8) {
        System.out.println("Invalid format in line:"+currentLine;
    } else {
        System.out.println(tokens[0]+"\t"+tokens[1]+"\t\t"+tokens[2]
          +"\t"+tokens[3]+"\t"+tokens[4]+"\t\t"+tokens[5]+"\t"
          +tokens[6]+"\t"+tokens[7]);
    }
}