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

时间:2014-12-26 14:13:14

标签: 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  

代码:

import java.util.Scanner;
public class Methods {


 public static void main(String[] args){
   Scanner input = new Scanner(System.in);
   System.out.print("what is your name ");
   String yourName = input.nextLine();
   System.out.println("hello " + yourName);
 }


 }

4 个答案:

答案 0 :(得分:4)

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

input.close();

在最后System.out.println()之后关闭Scanner并删除警告。

答案 1 :(得分:2)

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

您应该始终关闭您使用的流,例如Scanner input: -

input.close();

此警告可以忽略,如果没有close(),它应该可以正常工作,但最好在使用后关闭资源。

答案 2 :(得分:0)

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

input.close();

作为代码中的最后一行。有关详细信息,请参阅Closeable.close() javadoc

答案 3 :(得分:0)

你可以关闭Scanner,在这种情况下会很好,但是这会关闭基础的System.in输入流并阻止你接受输入以防你以后从标准输入流中读取