Java 为什么我要用这个获得ArrayIndexOutOfBoundsException?

Java 为什么我要用这个获得ArrayIndexOutOfBoundsException?,java,arrays,Java,Arrays,嘿,Java很新,我有一个CSV文件,我正在逐行扫描(我假设)并打印出格式化的细节。我不断得到java.lang.ArrayIndexOutOfBoundsException:1我可能做错了什么? 以下是CSV文件的内容 1,Mazda CX-9,7,Automatic,Premium,150 2,VW Golf,5,Automatic,Standard,59 3,Toyota Corolla,5,Automatic,Premium,55 4,VW Tiguan,7,Automatic,P

嘿,Java很新,我有一个CSV文件,我正在逐行扫描(我假设)并打印出格式化的细节。我不断得到java.lang.ArrayIndexOutOfBoundsException:1我可能做错了什么? 以下是CSV文件的内容

1,Mazda CX-9,7,Automatic,Premium,150

2,VW Golf,5,Automatic,Standard,59

3,Toyota Corolla,5,Automatic,Premium,55

4,VW Tiguan,7,Automatic,Premium,110

5,Ford Falcon,5,Manual,Standard,60

解决了这个问题哈哈,我的CSV文件在我的最后一个条目下面有空行。为大家干杯。

第一行/最后一行是空的吗?使用调试器我强烈建议使用调试器,它会让一切变得更加清晰。作为一种风格,我还建议使用
String[]字段
而不是
String字段[]
——后者实际上只在Java中有效,以便与旧语言兼容,通常不鼓励使用。(我个人认为允许它是一个错误,但是…@Ron Quick question,您最初是否使用Javascript标记此内容,然后在发布后立即将其编辑掉?我很好奇是否存在堆栈交换错误或其他问题,请参阅:@CertainPerformance No我相信我标记了Java和数组
    String fileName = "CarList.CSV";
    File file = new File(fileName);
    Scanner input = new Scanner(file);
    while (input.hasNextLine())
    {
        carsAvailableCount++;
        String line = input.nextLine();
        int lenght = line.length();
        String fields[] = line.split(",");
        String carNo = fields[0];
        String carName = fields[1];
        String seats = fields[2];
        String transmission = fields[3];
        String carType = fields[4];
        String rate = fields[5];

        System.out.format("%-9s%-9s%-9s%-9s%-9s%-9s\n", carNo, carName, seats, transmission, carType, rate);

    }