为什么抛出InputMismatchException?

时间:2013-10-21 19:39:55

标签: java int mismatch

public class Test
{
    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner input = new Scanner("text.txt");
        int x = input.nextInt();        
    }
}

text.txt:

8 
8
6  
7

此代码抛出InputMismatch异常。为什么呢?

3 个答案:

答案 0 :(得分:3)

那是因为"text.txt"不是数字。尝试:

Scanner input = new Scanner(new File("text.txt"));

答案 1 :(得分:1)

构造函数Scanner(String)接受要读取的String,而不是文件名。

因此,nextInt()正在尝试从传递给它的String中读取int,即。 "text.txt"

相反,请使用接受File来源的构造函数Scanner(File)

答案 2 :(得分:0)

问题是由于超载造成的。您正在调用新的Scanner(String)而不是新的Scanner(文件)。如果您尝试使用scanner.next(),您会看到它返回“text.txt”