Pfade in Java
Baue ein Path mit Paths.get, damit du einen Ort benennen kannst, ohne die Datei schon zu oeffnen. Oeffne Route.java, ruf Paths.get("note.txt") auf und drucke getFileName(). Kompiliere mit javac Route.java und starte java Route. Der Bildschirm soll note.txt zeigen. Eine zweite Demo verbindet "docs" und "note.txt", druckt den Dateinamen, dann den Elternordner. Eine dritte druckt den ganzen Pfad. Lass Vererbung fuer die naechste Seite.
Ein Dateistueck benennen
Die Schreib-Seite speicherte Buchstaben mit FileWriter und der Zeichenkette "note.txt". Hier wird dieser Name zu einem Path, den du befragen kannst. Oeffne Route.java. Halte den oeffentlichen Klassennamen Route. Loesche uebrige Store-Schreibdemos, Reader-Scanner, Signal-throws und Tastatur-Scanner. Das Programm darf nicht auf Tippen warten. Fuer diese Demos musst du note.txt nicht auf der Platte anlegen — benennen ist nicht oeffnen.
Oben behalten:
import java.nio.file.Path;
import java.nio.file.Paths;
In main baust du den Pfad aus einem Namen:
Path p = Paths.get("note.txt");
Drucke nur das letzte Stueck:
System.out.println(p.getFileName());
getFileName liefert ein Path, das als note.txt erscheint. Du schreibst kein tea und liest kein oak — du benennst.
import java.nio.file.Path;
import java.nio.file.Paths;
public class Route {
public static void main(String[] args) {
Path p = Paths.get("note.txt");
System.out.println(p.getFileName());
}
}
Im Ordner von Route.java fuehre javac Route.java aus. Passt alles, schreibt javac nichts Eigenes. Dann java Route — nicht java Route.java. Fehlen Path oder Paths, fehlen Imports.
Der Bildschirm zeigt note.txt — das letzte Stueck. Keine Tastaturpause. Leeres Terminal: vielleicht laeuft noch java Store ohne println. tea oder oak als Inhalt heisst Schreiben/Lesen vermischt. blocked oder after heisst Guard-Ueberrest.
Laufweg: Route.main, Paths.get auf "note.txt", getFileName, println. Nichts wird auf der Platte geoeffnet. Fehlt die Datei, stoppt diese Demo trotzdem nicht — du hast nie geoeffnet.
Ordner und Dateiname verbinden
Ein zweites Programm baut den Pfad aus zwei Teilen: Ordner docs, dann Datei note.txt. Drucke zuerst den Dateinamen, dann den Parent.
import java.nio.file.Path;
import java.nio.file.Paths;
public class Route {
public static void main(String[] args) {
Path p = Paths.get("docs", "note.txt");
System.out.println(p.getFileName());
System.out.println(p.getParent());
}
}
Kompiliere mit javac Route.java, dann java Route. Zeile eins: note.txt. Zeile zwei: docs. getFileName bleibt das letzte Stueck. getParent ist der Ordner darueber. Tausche die Bedeutungen nicht.
Paths.get mit mehreren Strings fuegt in Reihenfolge zusammen. Du tippst hier kein Trennzeichen von Hand. Der Pfad legt weder Ordner noch Datei an. Benennen bleibt getrennt von Schreiben und Lesen.
Bei nur "note.txt" kann getParent in Experimenten null sein. Die Zwei-Stueck-Demo zeigt klar docs.
Den ganzen Pfad drucken
Ein drittes Programm behaelt Paths.get("docs", "note.txt") und druckt das Pfadobjekt selbst.
import java.nio.file.Path;
import java.nio.file.Paths;
public class Route {
public static void main(String[] args) {
Path p = Paths.get("docs", "note.txt");
System.out.println(p);
}
}
Wieder kompilieren und starten. Der Bildschirm zeigt den Pfad als ein Wert — oft docs\note.txt oder docs/note.txt. Wichtig ist das Zusammenfuegen, nicht ein Slash auswendig. Willst du Teile getrennt, nutze getFileName und getParent.
Erfinde hier kein inheritance. Die naechste Seite startet Vererbung mit extends. Klebe kein FileWriter in Route.java — Schreiben hatte seine eigene Lektion. Halte Store, Reader und Route getrennt.
Verglichen mit Store und Reader
Mit java Store schriebst du in note.txt. Mit java Reader las du von der Platte. Mit java Route benennst du nur mit Path und Paths.get. Starte java Route fuer diese Demos.
Neu sind Paths.get, getFileName, getParent. Importiere java.nio.file.Path und java.nio.file.Paths. Kein FileWriter oder Scanner noetig.
Was fuer Vererbung offen bleibt
Diese Seite benennt Pfade. Die naechste startet inheritance — eine Klasse erweitert eine andere. Bleib bei Paths.get und der Trennung Dateiname versus Parent. Noch kein extends in Route.
Vor inheritance
Du kannst Paths.get("note.txt") bauen und note.txt via getFileName sehen. Du kannst "docs" und "note.txt" verbinden, note.txt, dann Parent docs sehen. Du kannst den ganzen Pfad als eine Zeile drucken. Kompiliere Route.java und starte java Route fuer jede Demo. Die naechste Seite ist inheritance.
Halte Ein-Name fuer klares getFileName, Zwei-Stueck fuer Parent docs, joined print fuer eine Zeile. Lass inheritance weg. Wenn java Route auf der Zwei-Zeilen-Demo note.txt und docs zeigt, sind Pfade fertig und du bist bereit fuer inheritance.
🧠 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