初级Java文件读取ArrayOutOfBounds错误

时间:2015-01-31 01:19:11

标签: java arrays file indexoutofboundsexception

我是java的新手,我正在尝试进行一项任务,我必须从文本文件中读取数据,其中文本文件包含第一行列表中的项目总数以及高度,重量和以下是名称数据。由于有5个数据点,文件中的第一个整数是' 5'以下5行是我正在扫描的相应数据。

我似乎无法从命令行运行此代码,但我可以从netbeans运行它。我得到以下例外:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundExceptions:0 at bmi.Bmi.main<Bmi.java:18>

代码

public static void main(String[] args) {      
   System.out.println("\nBMI Report:");
   File file = new File (args [0]);
   try{
      Scanner scanner = new Scanner(new FileInputStream(file));
            int count=scanner.nextInt();

            for(int i=0;i<5;i++){

            int height=scanner.nextInt();
            int weight=scanner.nextInt();
            String name=scanner.nextLine();     

1 个答案:

答案 0 :(得分:0)

  

线程“main”中的异常java.lang.ArrayIndexOutOfBoundExceptions:0在bmi.Bmi.main

此消息表示访问了元素0,超出了数组的边界,换句话说,数组为空,因此不起作用。

这必须是粘贴代码中有问题的一行:

File file = new File (args [0]);

如果args为空,则会在帖子中引发异常。你的程序需要一个参数。你传给它一个参数,这应该解决你的问题。

您可能需要先添加检查并打印有用的消息,例如:

if (args.length < 1) {
    System.out.println("You need to specify an argument. Bye.");
    System.exit(1);    
}
File file = new File (args [0]);
// ...