try (Scanner sc=new Scanner(System.in))
时间: 2024-10-15 09:29:16 浏览: 46
在Java编程中,`try-with-resources`语句是一种处理资源管理的机制,特别是像`Scanner`、`FileInputStream`、`BufferedReader`等那些实现了`AutoCloseable`接口的对象。当使用`try-with-resources`时,代码块会自动在`try`结束时关闭这些资源,无需再手动调用其`close()`方法。
在这个例子中,`Scanner sc = new Scanner(System.in)` 创建了一个新的`Scanner`对象,用于从标准输入(通常是控制台)读取数据。`try (Scanner sc...)`表明一旦`sc`对象创建完毕,程序就会立即进入`try`代码块,然后在`finally`部分,即使发生异常,`sc`也会在`finally`块结束后被安全地关闭,释放相关的系统资源,避免资源泄露。
举个简单的示例:
```java
try (Scanner sc = new Scanner(System.in)) {
System.out.println("请输入一个整数:");
int number = sc.nextInt();
System.out.println("您输入的数字是: " + number);
} catch (InputMismatchException e) {
System.out.println("输入无效,请输入一个整数");
} finally {
// 在这里,即使有异常,sc也会被关闭
}
```
在这里,如果用户输入的不是整数,`nextInt()`方法会抛出`InputMismatchException`,但是`Scanner`资源会在`catch`或`finally`块结束后被关闭。
阅读全文