java - 扫描仪使用后关闭

标签 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();

我没有得到这样的元素异常异常:

Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source)****

我多次调用 s (Scanner),第二次调用时出现运行时错误。 这是由于关闭扫描仪,而不是可能再次使用它。 我的问题是, 我每次使用 Scanner 时都会创建一个新实例,所以为什么会出现运行时错误?

最佳答案

问题是

当 Scanner 关闭时,如果源实现了 Closeable 接口(interface),它将关闭其输入源。

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

Thus scan.close() closes System.in.

要修复它你可以做

Scanner scan static or pass every time scanner object in method and close it at last.

关于java - 扫描仪使用后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23191324/

相关文章:

java - Spring MVC 3.1 根据字段值应用自定义验证

java - 禁用后退按钮和时间处理程序

java - 简单日期格式查询

c# - 如何从 Excel VBA 调用 .NET 方法?

java - 从扫描仪读取字符串并将其转换为字符数组

java - 在套接字上设置超时时出现 NoSuchElementException

java - 替换java中链接中的字符

service - OSGi 声明式服务在运行时过滤引用

java - 如何使用 Java 运行时使用 "cd"命令?

java - 使用 Java 在 Eclipse 中创建扫描仪时出现 FileNotFoundException