Kapitel 7. Datei-E/A

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Das nicht-blockierende (oder "neue") Input/Output-Paket, auch NIO genannt, wurde in J2SE 1.4 eingeführt.1 Die Erweiterung NIO.2, die in Java 7 hinzugefügt wurde, brachte neue Klassen für die Bearbeitung von Dateien und Verzeichnissen mit sich. Zu den Erweiterungen gehört das Paket java.nio.file, das Gegenstand dieses Kapitels ist. Mehrere der neuen Klassen in diesem Paket, wie java.nio.files.File, wurden in Java 8 um Methoden erweitert, die Streams verwenden.

Leider kollidiert hier die Stream-Metapher aus der funktionalen Programmierung mit dem gleichen Begriff aus der Ein-/Ausgabe, was zu Verwirrung führen kann. Die Schnittstelle java.nio.file.DirectoryStream hat zum Beispiel nichts mit funktionalen Streams zu tun. Sie wird von Klassen implementiert, die mit dem traditionellen for-each-Konstrukt über einen Verzeichnisbaum iterieren.2

In diesem Kapitel geht es um E/A-Funktionen, die funktionale Streams unterstützen. In Java 8 wurden der Klasse java.nio.file.Files mehrere Methoden hinzugefügt, um funktionale Streams zu unterstützen. Diese Methoden sind in Tabelle 7-1 aufgeführt. Beachte, dass alle Methoden in der Klasse Files statisch sind.

Tabelle 7-1. Methoden in java.nio.files.Files, die Streams zurückgeben
Methode Rückgabetyp

lines

Stream<String>

list

Stream<Path>

walk

Stream<Path>

find

Stream<Path>

Die Rezepte ...

Get Moderne Java-Rezepte now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.