💡 1. NIO.2 Dateiverarbeitung
Das moderne Java NIO.2 (`java.nio.file`) ersetzt die alte `File`-Klasse durch performante statische Hilfsmethoden:
Path dateipfad = Path.of("daten", "konfiguration.json");
// 1. Prüfen und Ordner erstellen:
if (!Files.exists(dateipfad.getParent())) {
Files.createDirectories(dateipfad.getParent());
}
// 2. Schreiben (UTF-8 atomic):
String jsonContent = "{\"version\": 2, \"active\": true}";
Files.writeString(dateipfad, jsonContent, StandardCharsets.UTF_8);
// 3. Lesen als String:
String gelesen = Files.readString(dateipfad, StandardCharsets.UTF_8);
System.out.println("Gelesene Daten: " + gelesen);
RAM ist der Schreibtisch: Beim Feierabend wird er komplett abgeräumt. Das Dateisystem ist der feuerfeste Aktenschrank im Keller, der Daten über Neustarts hinweg bewahrt.
⚡ 2. Quick-Cheat-Sheet
| Methode | Aufgabe | Vorteil |
|---|---|---|
Files.readString(path) | Liest gesamte Datei in String | Kompakter Einzeiler ab Java 11 |
Files.writeString(path, text) | Schreibt String in Datei | Automatische Ressourcenschließung |
Files.lines(path) | Liefert Stream von Zeilen | Speicherschonend für Gigabyte-Dateien |
Path.of("a", "b") | Erzeugt plattformunabhängigen Pfad | Ersetzt fehleranfälliges String-Slashing |
⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)
Vergisst man StandardCharsets.UTF_8, nutzt die alte Runtime das Betriebssystem-Encoding (unter Windows oft Windows-1252), was zu Umlaut-Salat führt!
Wer FileInputStream ohne Try-with-Resources nutzt, blockiert Dateien im Betriebssystem gegen Löschen und Verschieben.
🧠 4. Diagnostischer Selbst-Check
Überprüfe dein Verständnis von Sprach-Features, Speicherverwaltung und Enterprise-Architektur, bevor du den Code in der Web-IDE schreibst.