从文件中读取数字

mia*_*ech 1 java io file try-catch

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

1
4
5
d o
2
8 22
6
f
Run Code Online (Sandbox Code Playgroud)

所以我想要计算多少个数字和字母,我只能使用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(); }        
    }
Run Code Online (Sandbox Code Playgroud)

Ann*_*nne 5

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