0
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异常。为什么?

4

3 回答 3

3

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

Scanner input = new Scanner(new File("text.txt"));
于 2013-10-21T19:41:30.823 回答
1

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

所以,nextInt()试图int从你传递给它的字符串中读取一个,即。"text.txt".

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

于 2013-10-21T19:41:57.707 回答
0

问题是由于过载。您正在调用 new Scanner(String) 而不是 new Scanner(File)。如果您尝试了scanner.next(),您会看到它返回“text.txt”

于 2013-10-21T19:54:34.973 回答