Datei lesen in Java
Bereite eine einfache Textdatei note.txt im selben Ordner wie dein Programm vor. Schreib eine kurze Zeile hinein: oak. Oeffne Reader.java, erzeuge ein File fuer note.txt, packe es in einen Scanner, gib nextLine() aus, dann close den Scanner. Kompiliere mit javac Reader.java und starte java Reader. Der Bildschirm soll oak zeigen. Eine zweite Demo oeffnet missing.txt und stoppt mit FileNotFoundException. Lass Dateischreiben mit Java fuer die naechste Seite — erstelle note.txt von Hand im Editor.
Eine Zeile lesen, die schon auf der Platte liegt
Fruehere Seiten stoppten mit Ausnahmen, die du fingst oder warfst. Diese Seite erreicht Buchstaben, die nach Programmende in einer Datei bleiben. Oeffne eine Uebungsdatei Reader.java. Halte den oeffentlichen Klassennamen Reader, damit er zum Dateinamen passt. Loesche uebrig gebliebene Signal-throw-Demos, Guard-catch-Bloecke, Alarm-Array-Stops und jeden Scanner, der mit Tastatur-nextLine von System.in liest. Das Programm darf nicht auf Tippen warten. Dateilesen nutzt noch Scanner, aber der Konstruktor nimmt ein File, nicht die Tastatur.
Du brauchst drei import-Zeilen oben:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
Markiere main mit throws FileNotFoundException, damit eine fehlende Datei als checked Exception sichtbar wird. In main benenne die Datei:
File note = new File("note.txt");
Baue einen Scanner auf dieser Datei:
Scanner scan = new Scanner(note);
Gib die erste Zeile aus:
System.out.println(scan.nextLine());
Beende dann das Lesen:
scan.close();
Vor dem Kompilieren lege note.txt neben Reader.java an und tippe genau oak in die erste Zeile. Speichere die Textdatei. Das Java-Programm erzeugt diese Textdatei auf dieser Seite nicht.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Reader {
public static void main(String[] args) throws FileNotFoundException {
File note = new File("note.txt");
Scanner scan = new Scanner(note);
System.out.println(scan.nextLine());
scan.close();
}
}
Im Ordner mit Reader.java und note.txt fuehre javac Reader.java aus. Wenn Klammern, geschweifte Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann java Reader — nicht java Reader.java. Lass .java beim Start weg. Findet javac File oder Scanner nicht, fehlen oder sind die import-Zeilen falsch — setze sie zurueck, bevor du andere Fehler jagst.
Der Bildschirm zeigt oak. Der Scanner las die erste Zeile von der Platte und gab sie aus. Das Programm soll nicht auf Tastatur warten. Wartet das Terminal auf Eingabe, haengt Scanner noch an System.in statt an File note. Korrigiere den Konstruktor auf das File. Siehst du empty oder einen Stack von IllegalArgumentException, laeuft noch ein Signal-throw — wechsle zu java Reader mit der Lesedatei. Siehst du 2 oder blocked, startest du noch Alarm oder Guard.
Geh den Erfolgsweg einmal. Java startet bei Reader.main. Das File-Objekt haelt den Namen note.txt. Der Scanner oeffnet diesen Namen. nextLine holt die erste Zeile. println zeigt oak. close beendet den Scanner. Sonst nichts soll drucken. Fehlt note.txt im Ordner, triffst du frueh die Fehlend-Story — lege die Textdatei zuerst an.
Hier bedeutet nextLine die naechste Zeile in der Datei, nicht eine Eingabeaufforderung. Der Methodenname ist nach der Input-Seite leicht zu verwechseln: gleicher Name, andere Quelle. Die Buchstaben oak leben in der Textdatei; die Java-Klasse liest sie nur.
📊 File and Scanner roles
| Piece | What it does on this page |
|---|---|
| File | holds the disk name such as note.txt |
| Scanner | reads lines from that File with nextLine |
| close | finishes the Scanner read so the file handle is released |
Ein fehlender Name wirft FileNotFoundException
Ein zweites Programm behaelt dieselbe Form, zeigt aber auf einen Namen, der nicht auf dem Rechner liegt: missing.txt. Lege diese Datei nicht an. Der Lauf soll mit FileNotFoundException stoppen.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Reader {
public static void main(String[] args) throws FileNotFoundException {
File note = new File("missing.txt");
Scanner scan = new Scanner(note);
System.out.println(scan.nextLine());
scan.close();
}
}
Kompiliere mit javac Reader.java, dann java Reader. Diesmal druckt das Programm nicht oak. Das Terminal meldet FileNotFoundException. Die throws-Klausel auf main laesst diese checked Exception ohne catch auf dieser Seite aus main heraus. catch uebtest du frueher; hier geht es darum zu erkennen, dass ein fehlender Dateiname das Lesen stoppt. Die Schreibweise FileNotFoundException zaehlt beim Benennen. Nur «Fehler» ist fuer diese Lektion zu vage.
Legst du versehentlich missing.txt an, loesche sie oder benenne den String auf einen abwesenden Namen. Bevorzuge die erfolgreiche note.txt-Demo fuer einen ruhigen Bildschirm mit oak. Nutze die Fehlend-Demo nur, um FileNotFoundException zu sehen. Wechsle Dateien bewusst, damit Erfolg und Fehlend-Stopp sich im selben main beim Lernen nicht vermischen.
Erfinde auf dieser Seite kein Java-Schreiben fuer note.txt. Textdatei im Editor reicht fuer Leseuebung. Die naechste Seite schreibt mit Java in eine Datei. Pfade und mehr Tools kommen spaeter; diese Seite haelt ein klares Lesen und einen klaren Fehlend-Stopp.
Verglichen mit throw auf Signal
Auf der throw-Seite stoppte java Signal mit IllegalArgumentException, wenn Becher leer waren. Hier ist der Stopp fuer eine fehlende Datei FileNotFoundException, und der Erfolgsweg druckt eine Zeile von der Platte. Behalte Signal-Dateien nur als Historie; starte java Reader fuer Dateidemo, damit der Bildschirm zur Lektion passt.
Wrapper-, Array- und catch-Geschichte bleibt Geschichte. Heute sind die neuen Woerter File, Scanner auf einer Datei, nextLine von der Platte und FileNotFoundException.
Was diese Seite fuer Schreiben offen laesst
Diese Seite liest nur eine existierende Datei oder stoppt bei fehlendem Namen. Die naechste Seite zeigt, wie Java Buchstaben in eine Datei schreibt. Bleib hier bei Lesen von oak und Benennen von FileNotFoundException. Fuege noch keinen Schreibaufruf als Pflicht in die Reader-Demos ein.
Vor dem Schreiben von Dateien
Du kannst note.txt mit Scanner lesen und oak sehen. Du kannst missing.txt oeffnen und FileNotFoundException sehen. Kompiliere Reader.java und starte java Reader fuer jede Demo der Reihe nach. Lege note.txt von Hand neben die Klassendatei. Die naechste Seite schreibt Dateien, wo das Programm Text selbst speichert.
Behalte das erfolgreiche Lesen fuer einen ruhigen Bildschirm. Behalte die Fehlend-Demo fuer den Stopp. Halte Java-Schreiben von dieser Seite fern. Diese drei Gewohnheiten sind der Checkpoint. Wenn nach java Reader mit vorhandenem note.txt oak erscheint, hat Lesen seine Arbeit fuer diese Lektion getan und du bist bereit fuer Schreiben.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt