java文件I/O和异常
我试图编写一个程序,提示用户输入文件名,读取应该包含两列浮点数的文件,最后打印每列的平均值。使用try/catch/finally块
Scanner in = new Scanner(System.in);
System.out.println("Please enter the file name: ");
String file = in.nextLine();
try{
Scanner inFile = new Scanner(new File(file));
int count = 0;
float average1 = 0;
float average2 = 0;
while (inFile.hasNextFloat()) {
String str = inFile.nextLine();
Scanner line = new Scanner(str);
line.useDelimiter(" ");
average1 = Float.parseFloat(line.next());
average2 = Float.parseFloat(line.next());
average1 += in.nextFloat();
average2 += in.nextFloat();
}
System.out.println("The average of the first column: " + average1 / count);
System.out.println("The average of the second column: " + average2 / count);
}
catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}
由于某些原因,它仍在运行,无法找出原因和解决方法。 是的,它读取文件,但不提供输出并继续运行。 谁能帮助确定问题并帮助我解决它
# 1 楼答案
代码没有结束的原因是
in.nextFloat()
只是坐在那里等待来自命令行的输入。您不需要这一行,因为您已经分析了前一行中的输入。您可以简单地将其添加到平均值中,而不是将其赋值(否则只会在每次迭代中替换平均值)。一旦解决了这个问题,还需要增加计数。下面是一个工作示例: