0Pricing
Java Academy · Lektion

Zeilen lesen

readLine und Schleifen.

Zeilen lesen ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Die Methode readLine

readLine() ist das Herzstück von BufferedReader. Die Methode liest Zeichen, bis sie auf einen Zeilenumbruch (Enter) trifft, und gibt die Zeile anschließend als String zurück.

Der zurückgegebene Text enthält nicht das Zeilenumbruchzeichen. In dieser Lektion lesen wir einzelne und mehrere Zeilen.

String line = br.readLine();

Eine Zeile lesen

Hier ist der einfachste Fall: Lesen Sie einen Namen und geben Sie eine Begrüßung aus. readLine() blockiert (wartet), bis der Benutzer die Eingabetaste drückt.

Da die Methode aus System.in liest, wartet dieses Snippet auf eine Tastatureingabe und kann daher hier nicht automatisch ausgeführt werden.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String name = br.readLine();
        System.out.println("Welcome, " + name + "!");
    }
}

Was readLine am Ende zurückgibt

Wenn keine weiteren Eingaben vorhanden sind (Ende des Streams oder der Benutzer signalisiert EOF), gibt readLine() statt eines String den Wert null zurück.

Dies ist ein wichtiges Signal: Durch die Prüfung auf null erkennen wir, dass wir das Lesen beenden müssen.

String line = br.readLine();
if (line == null) {
    System.out.println("No more input.");
}

Bis zum EOF lesen

Um jede Zeile bis zum Ende der Eingabe zu lesen, wiederholen Sie die Schleife, solange readLine() nicht null ist. Dieses verbreitete Muster weist den gelesenen Wert zu und prüft ihn in einer einzigen Bedingung.

Jeder Schleifendurchlauf liefert die nächste Zeile, bis null die Schleife sauber beendet.

String line;
while ((line = br.readLine()) != null) {
    System.out.println("Got: " + line);
}

Ein Reader für mehrere Zeilen

Hier ist ein vollständiges Programm, das jede von Ihnen eingegebene Zeile wieder ausgibt, bis der Stream endet.

Es liest aus System.in, wartet daher auf eine Eingabe und kann nicht automatisch ausgeführt werden. Das Schleifenmuster können Sie jedoch genau so wiederverwenden.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Echo: " + line);
        }
    }
}

Zeilen zählen

Sie können innerhalb der Schleife auch andere Aufgaben erledigen, zum Beispiel zählen. Hier zählen wir, wie viele Zeilen eingehen.

Jede Iteration liest eine neue Zeile und erhöht einen Zähler. Wenn die Eingabe endet, geben wir die Gesamtzahl aus.

int count = 0;
String line;
while ((line = br.readLine()) != null) {
    count++;
}
System.out.println("Lines read: " + count);

Leere Zeilen und null unterscheiden

Seien Sie aufmerksam: Eine leere Zeile (der Benutzer drückt einfach die Eingabetaste) gibt "", einen leeren String, zurück — nicht null.

"".equals(line) bedeutet also, dass eine leere Zeile vorliegt, während line == null bedeutet, dass die Eingabe tatsächlich beendet ist. Das sind zwei verschiedene Dinge.

if (line == null) {
    // input finished
} else if (line.isEmpty()) {
    // user pressed Enter on a blank line
}

Zeilen ohne stdin simulieren

Um readLine() ohne Tastatureingabe in Aktion zu sehen, können wir einen BufferedReader aus einem StringReader mit Eingabedaten versorgen. Das Programm ist vollständig ausführbar.

Die Zeichenkette enthält zwei durch \n getrennte Zeilen, und die Schleife gibt beide aus.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("apple\nbanana"));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Fruit: " + line);
        }
    }
}

Leerraum entfernen

Eingaben enthalten häufig überflüssige Leerzeichen. Verwenden Sie trim(), um führenden und nachgestellten Leerraum aus einer Zeile zu entfernen, bevor Sie sie verwenden.

Das macht Vergleiche und das Parsen zuverlässig, besonders wenn Benutzer versehentlich Leerzeichen eingeben.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("  hello  \n"));
        String line = br.readLine().trim();
        System.out.println("[" + line + "]");
    }
}

Eine feste Anzahl von Zeilen lesen

Manchmal kennen Sie die Anzahl bereits im Voraus. Eine for-Schleife liest genau diese Anzahl von Zeilen.

Das ist üblich, wenn eine Aufgabe besagt: “Die erste Zahl gibt an, wie viele Zeilen folgen.”

for (int i = 0; i < 3; i++) {
    String item = br.readLine();
    System.out.println(i + ": " + item);
}

Wichtige Gewohnheiten bei readLine

Denken Sie an diese Gewohnheiten:

  • Prüfen Sie immer auf null, bevor Sie eine Zeile verwenden.
  • Verwenden Sie trim(), wenn überflüssige Leerzeichen Fehler verursachen könnten.
  • Eine leere Zeichenkette ist nicht dasselbe wie null.

Als Nächstes wandeln wir diese Zeilen in Zahlen um.

Kurzer Test

Was gibt readLine() zurück, wenn der Eingabestream sein Ende erreicht hat?

Zusammenfassung

Sie haben gelernt, einzelne Zeilen zu lesen, mit while ((line = br.readLine()) != null) Schleifen zu bilden und eine leere Zeile ("") vom Ende der Eingabe (null) zu unterscheiden.

Außerdem haben Sie ausführbare Beispiele mit StringReader gesehen. Als Nächstes wandeln wir Textzeilen in Zahlen um.

Häufig gestellte Fragen

Ist die Lektion „Zeilen lesen“ kostenlos?

Ja — der vollständige Text von „Zeilen lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Zeilen lesen“?

readLine und Schleifen. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Zeilen lesen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum BufferedReader
  2. Zeilen lesen
  3. Zahlen aus Eingaben parsen
  4. Streams sicher schließen
← Zurück zu Java Academy