InputMismatchException 是 Java 中的一个运行时异常,通常在使用 Scanner
类从输入源(如文件)读取数据时发生。当 Scanner
期望某种类型的数据(例如整数),但实际读取到的数据类型不匹配时,就会抛出这个异常。
RuntimeException
)。nextLine()
方法跳过空白行,或者使用 trim()
方法去除字符串两端的空白字符。try-catch
块捕获并处理 InputMismatchException
。以下是一个简单的示例,展示了如何处理 InputMismatchException
:
import java.util.InputMismatchException;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class FileScannerExample {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(new File("data.txt"))) {
while (scanner.hasNext()) {
try {
int number = scanner.nextInt();
System.out.println("读取到的整数: " + number);
} catch (InputMismatchException e) {
System.err.println("发现非整数数据,跳过该行。");
scanner.nextLine(); // 跳过当前行
}
}
} catch (FileNotFoundException e) {
System.err.println("文件未找到: " + e.getMessage());
}
}
}
Scanner
在使用完毕后自动关闭。InputMismatchException
,同时通过 scanner.nextLine()
跳过错误的数据行,避免程序中断。通过这种方式,可以有效应对文件中可能存在的格式问题,保证程序的健壮性。
领取专属 10元无门槛券
手把手带您无忧上云