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
异常。为什么呢?
答案 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”