Scanner的close方法

完美体育365软件下载 📅 2025-07-18 07:23:30 ✍️ admin 👁️ 1294 ❤️ 432
Scanner的close方法

1.概述

关闭Scanner,即调用Scanner的close方法,一旦调用之后,后面即使重新new一个Scanner类,也无法再使用Scanner,如以下代码会报NoSuchElementException: No line found这个异常。

public class In {

public static void main(String[] args) throws InterruptedException {

Scanner scanner = new Scanner(System.in);

System.out.println(scanner); //刚开辟的Scanner的参数处于初始化

String str = scanner.nextLine();

System.out.println(str);

System.out.println(scanner);

scanner.close(); //用close方法关闭scanner调用的资源

System.out.println(scanner); //其属性source closed=true

System.out.println("**********************************");

Scanner scanner2= new Scanner(System.in); //重新声明但是无法调用

str= scanner2.nextLine();

System.out.println(str);

}

}

2.原因

原因是Scanner关闭之后,把自身调用的资源关闭了,其中System.in的资源也关闭了。因为in是System类的静态属性并且只可以实例化一次,而静态属性会让其变为共享。当关闭Scanner,即使再次声明Scaner也用不了,因为in被关闭了。

3.好处

如果一个方法中创建了Scanner对象,却没有关闭,那么在方法结束后,Scanner对象虽然会进入被回收的队列中,但不是立刻回收。因此会给计算机带来一定的负担。因此最后释放Scanner对象可以节省内存,避免影响计算机远行。

相关推荐

奇幻韩剧《奇迹》全集已更新
bet3365vip

奇幻韩剧《奇迹》全集已更新

📅 07-07 👁️ 2870
英雄,还是太监——郑和在历史上的六张面孔
完美体育365软件下载

英雄,还是太监——郑和在历史上的六张面孔

📅 06-28 👁️ 6374
完美组合女装
365bet官网最新网址

完美组合女装

📅 07-17 👁️ 2399