使用Scanner类报错:java.util.NoSuchElementException

463 阅读1分钟

一、报错原因

想了好久,自己的输入的数据也没啥问题。为什么在使用Scanner类会NoSuchElementException,官方是说 if input is exhausted。意思就是输入流耗尽的意思。额,看了一下源码,当我们 new 一个 Scanner 类的时候,获取的输入流是一个静态常量对象 public static final InputStream in = null;在关闭后,即调用 Scanner类的 close 的方法后,输入流就被永远关闭了。第二次再次获取输入流不能正确打开,也就是说,这个输入流只能被关闭一次。

二、解决办法

在整个程序结束时才调用关闭流的方法。

三、参考