Scanner im try-with-resources Statement



  • Hallo!

    Beim Bearbeiten der Aufgaben ist mir aufgefallen, dass ich beim erneuten Erstellens eines Scanners eine NoSuchElementException erhalte. Falls dieser Fehler auch bei anderen auftreten sollte, teile ich hier meine Lösung des Problems.

    Bei der Recherche des Fehlers habe ich diesen Artikel gefunden https://coderanch.com/wiki/678613/Don-close-Scanner-tied-System. Der Fehler tritt auf, da der Scanner beim Schließen (Scanner.close() bzw. verlassen des try-with-resources-Blocks) den zugrundeliegenden Stream auch schließt. Das ist dann bei Programmen, in denen mehrere Aufgaben implementiert sind, ein Problem, da auf einem geschlossenen Stream kein neuer Scanner erstellt werden kann.

    Eine Lösung des Problems ist zum Beispiel, für das gesamte Programm einen Scanner zu erstellen und ihn immer wieder zu verwenden ohne ihn zu schließen.


Log in to reply