文件I / O和异常

时间:2019-05-03 06:14:37

标签: java

我正在尝试编写一个程序,提示用户输入文件名,读取该文件,该文件应包含两列浮点数,最后打印出每一列的平均值。使用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 个答案:

答案 0 :(得分:1)

代码未结束的原因是viewControllers,只是坐在那里等待命令行输入。您已经不需要这一行,因为您已经分析了前一行中的输入。您可以简单地将平均数添加到那里,而不用分配它(否则它将在每次迭代中替换平均值)。解决此问题后,还需要增加计数。这是一个工作示例:

in.nextFloat()