从文件中读取数字

时间:2012-07-28 06:58:09

标签: java file io try-catch

假设我有一个主要是数字的文件,还有一些字母

1
4
5
d o
2
8 22
6
f

所以我想要计算多少个数字和字母,我只能使用nextInt()方法。这是我正在使用的代码,但由于某种原因,我得到一个无限循环,在做了一些调试(打印输入)后,它将停在第5位。为什么我在这里做错了?

public static void mixedF() {
        int numbers = 0; 
        int words = 0;
        int num;      
        try {
            Scanner in = new Scanner(new File("myFile.txt"));
            while(in.hasNext()) {
                try {
                    num = in.nextInt();
                    System.out.println(num);
                    numbers++; 
                }
                catch (InputMismatchException e) { words++; }              

                }            

            System.out.println("numbrers: "+numbers);
            System.out.println("words: "+words);
        }
        catch (FileNotFoundException ex) { ex.getMessage(); }        
    }

2 个答案:

答案 0 :(得分:5)

您需要将in.next();添加到catch,否则scanner将无法继续前进。

答案 1 :(得分:0)

问题:您正在使用nextInt()函数单独读取整数。

当Scanner遇到一个角色时,它会进入catch块。尝试在catch块中推进扫描仪,或者反复阅读字符“d”