为什么我的扫描器把文本文件中的数字作为字符串来读取?

qvk1mo1f  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(632)

我有一个文本文件,其中包含杂货项目,后跟文本文件中它们所在的岛。出于某些原因,我的扫描仪只提取字符串形式的数据,而不是字符串和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 下面是一个指向输入文件片段的链接

如果有任何帮助,我将不胜感激。

ni65a41a

ni65a41a1#

你可能认为 nextInt 获取下一个int,但事实并非如此:它将输入的下一个标记扫描为int InputMismatchException 被抛出。
因为您的输入是以字符串开头的,所以会引发这个异常。

相关问题