我是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();
答案 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]);
// ...