Java Scanner出错

时间:2015-02-18 02:57:22

标签: java eclipse java.util.scanner

我是Java的新手。我想获得用户输入。在我的程序的一部分,这工作,但在我的程序的另一部分使用相同的代码,提供以下错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at Display.displayInstructions(Display.java:31)
at SimpleWordGame.main(SimpleWordGame.java:6)

这是我的扫描仪代码:

  Scanner inputChoice =  new Scanner(System.in);
  String playerChoice;
  System.out.println("Do you wish to play the Simple Word Game (Y/N)?  ");
  playerChoice = inputChoice.next();

  inputChoice.close();

1 个答案:

答案 0 :(得分:3)

删除对

的调用
inputChoice.close();

问题是您的扫描仪Scanner inputChoice = new Scanner(System.in);包裹了全球 System.in。如果您close(),那么尝试从System.in获取输入将会失败。

Scanner.close() JavaDoc说(部分)

  

如果此扫描程序尚未关闭,那么如果其底层可读也实现了Closeable接口,那么将调用可读的close方法

System.inInputStream(因此Closeable)。