Rekursive Dateiauflistung in Java: Optimiert mit Framework-Verbesserungen
Hintergrund:
Iterierung über Alle Dateien in einer Verzeichnisstruktur sind in der Java-Programmierung häufig erforderlich. Allerdings neigen viele Implementierungen dazu, kompliziert zu sein und es mangelt an Framework-Unterstützung.
Framework-Lösung (Java 8): Files.walk() und Files.find()
Java 8 führte elegante Mechanismen für die Dateiiteration ein:
Codebeispiel:
Mit Files.walk() können Sie Listen Sie rekursiv alle regulären Dateien in einem angegebenen Verzeichnis wie folgt auf:
try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
Bedingte Filterung (optional):
Wenn eine Dateiattributfilterung erforderlich ist, wird Files.find( ) bietet verbesserte Effizienz:
Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
Leistung Überlegungen:
Files.walk() und Files.find() funktionieren in der Praxis im Allgemeinen identisch. Allerdings kann Files.find() beim Filtern basierend auf Attributen geringfügig effizienter sein.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie können „Files.walk()' und „Files.find()' von Java 8 die rekursive Dateiauflistung optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!