java - 为什么我会收到 InputMismatchException?

标签 java file-io java.util.scanner

我用 java 创建了一个扫描仪来读取有关城市的数据文件。该文件的格式如下:

Abbotsford,2310,2
Adams,1967,1
Algoma,3167,2

在阅读文件时,在扫描每行的最后一项(此项必须是 int)时,我收到一个 InputMismatchException 异常。

public void fileScanner(File toScan) throws FileNotFoundException {
            Scanner sc = new Scanner(toScan);
            sc.useDelimiter(",");
            System.out.println(sc.next());
            System.out.println(sc.nextInt());
            System.out.println(sc.nextInt());

有什么想法可以解释为什么吗?我想这与我使用“,”分隔符有关。

最佳答案

您仅使用一个分隔符,即 ,,但您的文件包含 \r\n,因此请尝试使用多个分隔符。另外,使用循环读取整个文件:-

Scanner sc = new Scanner(toScan);
        sc.useDelimiter(",|\\r\\n");
        while (sc.hasNext()) {
            System.out.println(sc.next());
            System.out.println(sc.nextInt());
            System.out.println(sc.nextInt());
        }

输出:-

Abbotsford
2310
2

Adams
1967
1

Algoma
3167
2

关于java - 为什么我会收到 InputMismatchException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61023823/

相关文章:

java - 下面代码的大O运行时间是多少?

python - 首选文件逐行读取 Python 中的成语

compiler-errors - 运行时扫描变量时出错

java - 模拟 java.util.Scanner 的用户输入

java - 如何使用Scanner的分隔符方法

java - 多连接工厂

java - 在java自定义验证中访问JSF输入字段的最大长度

java - Mockito模拟注释多个对象

python - 在类 __exit__ 或 __del__ 方法中关闭文件?

Python 正则表达式在文件行首搜索字符串