当前位置: 首页 > 知识库问答 >
问题:

在java中关闭扫描仪的目的是什么?[重复]

南门意蕴
2023-03-14

我有一行代码

Scanner input = new Scanner (System.in);

我使用输入来获得一些用户输入。

我的程序警告我有资源泄漏,因为输入从未关闭。

一旦我加了一行

input.close();

它停止抱怨,一切正常。

我是新来的Java,想知道关闭输入的目的是什么?它做什么。

共有1个答案

朱渝
2023-03-14

Scanners(或任何其他文件I/O类)关闭时,它们的资源被释放,内存被释放。

 类似资料:
  • 在我的代码中,我打开了两个扫描器方法,但关闭一个扫描器将关闭所有扫描器` `这里是xd。关闭我的扫描仪也是为什么?它如何克服这一点?朋友们,我想知道为什么?。还有没有其他方法可以暂时关闭扫描仪以防止内存泄漏?

  • < b >想改进这个问题?更新问题,以便通过编辑此帖子用事实和引用来回答问题。 我知道使用nextInt()方法不会消耗新行字符,所以为了处理这个问题,我需要使用一个空的nextLine()方法继续。 我的问题是,作为一种替代解决方案,程序是否会对任何类型的运行时错误开放以使用两个扫描仪,一个用于字符串输入,一个用于整数? 感谢您的任何帮助! (经过编辑,因此问题不那么主观)

  • 问题内容: 我有一个链接到。现在,使用之后,我应该将其关闭,因为将其保持打开状态是不好的编码习惯。但是,如果我关闭,我也将关闭!谁能告诉我如何关闭而不关闭(如果有的话)。 问题答案: 一种选择是将流包装为,以防止流被关闭。然后,你的读者将使用而不是原始流。

  • 问题内容: 我试图将我的应用程序中较大且经常使用的部分重构为单独的方法,以使其易于维护。 其中一些方法要求用户输入并进行输入验证,因此我使用了Scanner和System.in,但是当我关闭Scanner时,我也关闭了System.in。 所以我的问题是,我只能通过用CloseShieldInputStream屏蔽System.in来防止System.in关闭,还是应该开始将Scanner传递给方

  • 我试图将应用程序中大量且经常使用的部分重新划分为不同的方法,以使其更容易维护。 其中一些方法要求用户输入并进行输入验证,因此我使用了扫描仪和系统。但当我关闭扫描仪时,我也会关闭系统。在里面 所以我的问题是,我只能阻止系统。通过使用CloseShieldInputStream屏蔽它来关闭,还是我应该开始向方法传递一个扫描器?

  • 我有一个链接到中。现在,在使用了