
求解一个java Scanner问题。
Exceptioninthread"main"java.lang.IllegalStateException:Scannerclosedatjava.util.Scann...
Exception in thread "main" java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Scanner.java:1115)
at java.util.Scanner.next(Scanner.java:1403)
at word.guess(word.java:62)
at HangmanCL.main(HangmanCL.java:13)
scanner 之后要是不写scanner.close();程序运行没问题。
但加了之后就会就会出现上面的报错
求教!!! 展开
at java.util.Scanner.ensureOpen(Scanner.java:1115)
at java.util.Scanner.next(Scanner.java:1403)
at word.guess(word.java:62)
at HangmanCL.main(HangmanCL.java:13)
scanner 之后要是不写scanner.close();程序运行没问题。
但加了之后就会就会出现上面的报错
求教!!! 展开
3个回答
展开全部
你在一段代码里面先开启了Scanner,用完之后close了。然后你又要用到Scanner,但是这时候你的Scanner已经关闭了。所以才会报出上面的错误,你可以再你第二次用Scanner之前再new一次Scanner就可以了
展开全部
Scanner closed.
Scanner已经关闭了,你要是再next(),肯定抛异常了。
这好比我是保安,你需要进大门,我给你开门了,你站那不动,我又把门关上了,你以为我开了一次就可以进去,然后你撞门上了(报错了)。
Scanner已经关闭了,你要是再next(),肯定抛异常了。
这好比我是保安,你需要进大门,我给你开门了,你站那不动,我又把门关上了,你以为我开了一次就可以进去,然后你撞门上了(报错了)。

你对这个回答的评价是?
展开全部
//正确的写法
java.util.Scanner sc = new java.util.Scanner(System.in);
String str = sc.next(); //接受用户输入的字符串
sc.close();//进行关闭操作。。
System.out.println(str);
//错误的写法
java.util.Scanner sc = new java.util.Scanner(System.in);
sc.close();//进行关闭操作。。(如果把close()放到sc.next()的下面,那么就会报错)。
String str = sc.next(); //接受用户输入的字符串
System.out.println(str);
java.util.Scanner sc = new java.util.Scanner(System.in);
String str = sc.next(); //接受用户输入的字符串
sc.close();//进行关闭操作。。
System.out.println(str);
//错误的写法
java.util.Scanner sc = new java.util.Scanner(System.in);
sc.close();//进行关闭操作。。(如果把close()放到sc.next()的下面,那么就会报错)。
String str = sc.next(); //接受用户输入的字符串
System.out.println(str);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询