java.lang.IllegalStateException:扫描程序已关闭
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java.lang.IllegalStateException:扫描程序已关闭,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1923字,纯文字阅读大概需要3分钟。
内容图文
![java.lang.IllegalStateException:扫描程序已关闭](/upload/InfoBanner/zyjiaocheng/715/ca9089538779408ab0af4dad3e0a1a07.jpg)
我得到了以下代码,但在第一个循环之后,我的调试器发出以下错误,很奇怪,我一直这样做,但它不再起作用了,这很奇怪?!
我一步一步地检查了它,它只是在切换顺序后停止了吗?
Exception in thread "main" java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Unknown Source)
at java.util.Scanner.findWithinHorizon(Unknown Source)
at java.util.Scanner.nextLine(Unknown Source)
at Level.schleife(Level.java:35)
at Crawler.main(Crawler.java:23)
public boolean schleife() {
System.out.println("Das Spiel beginnt, bewege Dich mit der WASD Steuerung!");
Scanner eingabeMove = new Scanner(System.in);
tmpi = positioni;
tmpj = positionj;
while (true) {
String bewegung = eingabeMove.nextLine();
switch (bewegung) {
case "w": { // vorw?rts
tmpi += 1;
if (actionResult()) {
positioni = tmpi;
break;
} else {
return false;
}
}
case "a": { // links
tmpj -= 1;
if (actionResult()) {
positionj = tmpj;
break;
} else {
return false;
}
}
case "s": { // rückw?rts
tmpi -= 1;
if (actionResult()) {
positioni = tmpi;
break;
} else {
return false;
}
}
case "d": { // rechts
tmpj += 1;
if (actionResult()) {
positionj = tmpj;
break;
} else {
return false;
}
}
default: { // falsche Eingabe
System.out.println("Falsche Eingabe!");
continue;
}
}
eingabeMove.close();
}
}
解决方法:
不要打电话给eingabeMove.close();在while循环结束时.您导致扫描仪在第一个循环结束时无法运行.
由于循环始终以返回结束,因此在此schleife()方法中关闭扫描程序没有意义.
你实际上不需要关闭扫描仪,因为它包装了System.in,它永远不会关闭.鉴于这一事实,当schleife()返回时,你可以简单地让eingabeMove超出范围.
如果您确实要关闭扫描程序,则应将eingabeMove作为参数传递给方法,并将其从调用方法中关闭.
public boolean schleife(Scanner eingabeMove) {
// use the scanner
}
来电代码:
Scanner eingabeMove = new Scanner(System.in);
schleife(eingabeMove);
eingabeMove.close();
内容总结
以上是互联网集市为您收集整理的java.lang.IllegalStateException:扫描程序已关闭全部内容,希望文章能够帮你解决java.lang.IllegalStateException:扫描程序已关闭所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。