我試圖創建一個非常簡單的程序(它並不重要,但是一個掃雷遊戲),並且我遇到了以下問題:當我嘗試(Scanner
),它第一次工作(第一回合),但在第二回合,按輸入後,它會拋出以下異常:java.util.NoSuchElementException: No line found
。java.util.NoSuchElementException:No line found - 讀取用戶輸入只能使用一次
兩回合之間沒有任何變化,我在每一回合創建一個新的Scanner
實例。
代碼:
public String nextTurn() {
Scanner scn = new Scanner(System.in);
System.out.print("Please insert your action: ");
StringTokenizer input = new StringTokenizer(scn.nextLine());
scn.close();
//...
}
再次,它工作時,我稱這種方法爲第一次,但失敗的第二個呼叫。你有一個想法可能是什麼問題?
像你這樣打開和關閉'System.in'是很危險的。我建議你爲此目的和你的整個程序創建一個基於System.in的掃描器,並將它作爲參數傳遞給方法。此外,即使使用不同的掃描儀對象完成掃描,以前掃描的令牌也可能很重要。 – 2015-02-08 14:27:05