當過我運行下面的代碼,如何在java中關閉掃描器?
private static String input(String Message){
Scanner input_scanner = new Scanner(System.in);
System.out.print("\n" + Message);
String string = input_scanner.nextLine();
input_scanner.close();
return string;
}
我得到這個錯誤:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at main.learn.input(learn.java:25)
at main.learn.main(learn.java:13)
我想通了,這是什麼做的線input_scanner.close();
但是當我刪除它,我得到的警告說:
Resource leak: "input_scanner" is never closed"
是否有反正我可以阻止錯誤發生並擺脫警告?
我不認爲你可以使用'System.in'多個掃描儀可靠。如果你關閉它,那麼你關閉'System.in' ...如果你不這樣做,那麼你創建的第二個掃描器可能不會從第一個掃描器離開的位置開始(因爲第一個掃描器可能已經緩衝了一些行) – immibis