使用后关闭扫描仪

Hah*_*ahn 1 java runtime java.util.scanner

在使用扫描仪时,如下所示:

Scanner s = new Scanner(System.in);
String response = s.next();

Boolean approved = (response.contains("Y") || response.contains("y")) ? true : false;

if (approved){
  Do Stuff      
}
s.close();
Run Code Online (Sandbox Code Playgroud)

我没有这样的Element异常异常:

线程“主”中的异常java.util.Scanner.throwFor(java.util.Scanner.next(未知源)处的java.util.NoSuchElementException ****

我多次致电(Scanner),第二次致电时发生运行时错误。这是由于关闭扫描仪,然后可能再次使用。我的问题是,每次使用Scanner时都会创建一个新实例,为什么会出现RunTime错误?

nii*_*74u 5

问题是

关闭扫描器后,如果源实现了Closeable接口,它将关闭其输入源。

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

因此scan.close()关闭System.in。

要解决它,你可以

扫描程序会在方法中静态扫描或每次通过扫描程序对象,最后关闭它。