Heim > Java > javaLernprogramm > Wie kann Java Dateien effizient rekursiv aufzählen?

Wie kann Java Dateien effizient rekursiv aufzählen?

Susan Sarandon
Freigeben: 2024-12-19 17:11:10
Original
1014 Leute haben es durchsucht

How Can Java Efficiently Recursively Enumerate Files?

Rekursives Auflisten von Dateien mit Java

Bei der Untersuchung der Optionen zum rekursiven Auflisten von Dateien in einem bestimmten Verzeichnis entdecken wir verschiedene Ansätze. Es gibt zwar „hackige“ Implementierungen, aber das Java-Framework selbst bietet robuste Dienstprogramme, um diese Aufgabe zu rationalisieren.

Der optimierte Ansatz von Java 8

Java 8 führt eine praktische streambasierte Lösung ein :

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}
Nach dem Login kopieren

Dieser Ansatz bietet eine elegante Möglichkeit zum Durchlaufen von Dateien und unterstützt eine Reihe von Stream-Vorgängen wie Filtern, Zuordnen und Begrenzen.

Files.find: Filtern nach Dateiattributen

Java bietet auch Files.find, das ein Bi-Prädikat zum Filtern von Dateien akzeptiert auf Attributen:

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);
Nach dem Login kopieren

Während Files.find möglicherweise eine spezifische Optimierung beim Filtern nach Attributen bietet, ist seine Leistung im Allgemeinen vergleichbar mit Files.walk.

Leistungsvergleich

Bei der Bewertung dieser Ansätze empfehlen wir, die spezifischen Auswirkungen auf die Leistung basierend auf Ihrem Nutzungsszenario zu berücksichtigen. Ausführlichere Einblicke finden Sie im GitHub-Projekt im Update der Antwort, das Ergebnisse und einen Testfall bereitstellt.

Das obige ist der detaillierte Inhalt vonWie kann Java Dateien effizient rekursiv aufzählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage