Java Fehler, finde ihn nicht?

...komplette Frage anzeigen

3 Antworten

while (!Eingabe.equals("q") && Sc.hasNextLine() )

So muss die Bedingung in der Schleife lauten. Die Exception tritt auf, weil es keine weiteren Zeilen mehr gibt, die gelesen werden können. Deshalb musst du immer überprüfen, ob du schon am Ende der Datei angekommen bist.

Außerdem folge bitte den Java conventions und schreibe Attribute und Methoden klein.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von tavkomann
27.06.2017, 14:44

Des Weiteren schließt man Scanner von System.in nicht, wie bereits jemand geschrieben hat.

0
Kommentar von tavkomann
27.06.2017, 14:46

Achso, vergiss das mit hasNextLine, das macht man nur bei Dateien, nicht bei System.in

0

Ich kann diesen code problemlos ausführen. Wie genau führst du es aus? Hast du vielleicht irgendwo anders einen anderen Scanner, den du schliesst?

Antwort bewerten Vielen Dank für Deine Bewertung

Du rufst sc.Close() auf. Das schließt aber nicht nur den Scanner, sondern auch den darunterliegenden Stream, also System.in. Dann kannst Du die Methode aber nicht wieder aufrufen, weil der Stream nicht wieder geöffnet werden kann.

Wenn Du die Methode mehrfach aufrufst, dann ist es sinnvoll, den Scanner irgendwo in der main-Methode zu erzeugen und dann an die Methode inDateiSchreiben zu übergeben. Den Scanner kannst Du dann am Ende von main schließen - wenn das überhaupt nötig sein sollte.


Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?