我用 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/