为什么在这个java程序中出现此警告

为什么在这个java程序中出现此警告,java,input,java.util.scanner,Java,Input,Java.util.scanner,我需要帮助我犯了这样的错误 Description Resource Path Location Type Resource leak: 'input' is never closed Methods.java /piyush/src/piyush line 7 Java Problem 代码: 使用后应关闭流。在您的情况下,添加 input.close

我需要帮助我犯了这样的错误

Description                               Resource        Path                Location    Type  
Resource leak: 'input' is never closed    Methods.java    /piyush/src/piyush  line 7      Java Problem  
代码:


使用后应关闭流。在您的情况下,添加

input.close();

在最后一次System.out.println之后关闭扫描仪并消除警告。

您需要关闭扫描仪以释放任何系统资源。使用

input.close();

作为代码中的最后一行。有关更多信息,请参阅。

您可以关闭扫描仪,在这种情况下也可以,但这将关闭输入流中的底层系统,并防止您在以后从标准输入流读取时接受输入。

这不是错误,而是警告。错误/异常是指代码编译错误中存在错误,或者在执行程序运行时异常时出现错误

对于扫描仪输入,您应始终关闭使用的流:-


此警告可以忽略,并且在没有关闭的情况下应该可以正常工作,但在使用资源后关闭资源是一个很好的做法。

我认为消息很清楚。“输入”的哪个部分从未关闭过?你不明白?关闭底层输入流有什么错?如果他不再使用扫描仪,他应该关闭它,不要忽略警告。修复错误往往比抑制/忽略错误要有效得多。@Mustafasabir Closing System.in不允许用户在关闭扫描仪后接受输入。@m0skit0 Yes,因此答案中的大小写为in。他应该在finally块中关闭以更正确。@m0skit0 Yes,这是正确的方法,但他确实需要添加正确的错误处理。事实上,他应该在finally块中关闭。@m0skit0是的,然后他使用黑暗时代的Java版本@m0skit0,你是说在一次尝试中{…}最后{input.close;}?如果我必须使用稍后的扫描仪,它会工作吗?@PiyushKashyap,不。你已经释放了它所消耗的所有资源。您必须创建一个新的扫描仪。另外,请阅读我答案的第一句话。
input.close();
input.close();