繁体   English   中英

Java-扫描仪不要求输入,然后崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM