[英]Java - Scanner not asking for input, and then crashing
我试图从Scanner类获取输入,但是每次调用它时,它会使整个程序崩溃。 尝试捕获异常并打印消息时,什么都没有显示,所以我什至不确定问题的根源是什么。 一些背景信息是该类由main方法调用,该方法也有一个正在运行的Scanner,但在调用该类的方法之前已关闭它。
public class UserHandler {
static Scanner userInput1 = new Scanner(System.in);
static void addInterface() throws IOException, FileNotFoundException{
boolean addMore = true;
while(addMore){
System.out.println("Please enter restaurant name: ");
String name = userInput1.next();
if(!FileHandler.containsName(name)){
System.out.println("Name already exists!");
}else{
String[] tags = new String[5];
System.out.print("\nPlease enter tags seperated by spaces: ");
for(int i = 0; i < tags.length; i++){
if(userInput1.hasNext()){
tags[i] = userInput1.next();
}
else{
break;
}
}
FileHandler.addName(name,tags);
}
}
}
}
我尝试了几次,但无法重现此问题。 我假设这与语法有关,或者只是没有正确调用而已。 无论哪种方式,我都花了很多时间来修复它,但无济于事。
我想您可以从对Scanner(System.in)的第一次调用获得对命令行的访问,然后将其关闭,并在第二次收到IllegalStateException时尝试对其进行访问。
在两种情况下,请尝试使用相同的Scanner(System.in)实例。
有关更多信息,请参考http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.