当过我运行下面的代码,如何在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