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