我有一个文本文件,其中包含杂货项目,后跟文本文件中它们所在的岛。出于某些原因,我的扫描仪只提取字符串形式的数据,而不是字符串和int形式的数据。下面是我的代码,经过超级简化,可以尝试进行故障排除:
public static void readItems(String filename){
String groceryItem;
int groceryIsle;
String specialArea;
try{
FileInputStream fis = new FileInputStream(filename);
Scanner s = new Scanner(fis);
while (s.hasNext()){
**System.out.println(s.next());**
}
} catch(IOException ex){
Logger.getLogger(GroceryPlanner.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Can not open the file!");
}
}
这只是打印出所有项目的名称和岛号。当我将突出显示的代码行更改为 s.nextInt()
,我明白了
线程“main”中出现异常 java.util.InputMismatchException
下面是一个指向输入文件片段的链接
如果有任何帮助,我将不胜感激。
1条答案
按热度按时间ni65a41a1#
你可能认为
nextInt
获取下一个int,但事实并非如此:它将输入的下一个标记扫描为intInputMismatchException
被抛出。因为您的输入是以字符串开头的,所以会引发这个异常。