簡體   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