Wie schließe ich einen scanner in java?

Immer wenn ich den folgenden code ausführen,

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;
}

Bekomme ich diesen Fehler:

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)

Dachte ich, es war etwas mit der Leitung zu tun input_scanner.close(); aber wenn ich es entfernen, ich bekomme Warnungen, die sagen:

Resource leak: "input_scanner" ist nie geschlossen"

Ist es trotzdem kann ich halt die Fehler passiert und loszuwerden, die Warnungen?

Ich glaube nicht, können Sie mehrere Scanner verwenden mit System.in zuverlässig. Wenn Sie es schließen, dann schließen Sie System.in... wenn du nicht, dann der zweite Scanner, den Sie erstellen, vielleicht nicht Anfang, wo der erste aufgehört hat (weil die erste möglicherweise gepuffert einige Zeilen)

InformationsquelleAutor William Smith | 2015-04-25

Schreibe einen Kommentar