Maison > Java > javaDidacticiel > Comment Java peut-il énumérer efficacement et récursivement les fichiers ?

Comment Java peut-il énumérer efficacement et récursivement les fichiers ?

Susan Sarandon
Libérer: 2024-12-19 17:11:10
original
987 Les gens l'ont consulté

How Can Java Efficiently Recursively Enumerate Files?

Énumération récursive des fichiers avec Java

En explorant les options de liste récursive des fichiers dans un répertoire spécifié, nous découvrons différentes approches. Bien qu'il existe des implémentations « hacky », le framework Java lui-même offre des utilitaires robustes pour rationaliser cette tâche.

L'approche rationalisée de Java 8

Java 8 introduit une solution pratique basée sur les flux. :

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}
Copier après la connexion

Cette approche fournit un moyen élégant de parcourir les fichiers et prend en charge une gamme d'opérations de flux telles que le filtrage, le mappage et limitant.

Files.find : Filtrage sur les attributs de fichier

Java fournit également Files.find, qui accepte un bi-prédicat pour filtrer les fichiers en fonction des attributs :

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);
Copier après la connexion

Bien que Files.find puisse offrir une optimisation spécifique lors du filtrage sur les attributs, ses performances sont généralement comparables à Files.walk.

Comparaison des performances

Lors de l'évaluation de ces approches, nous vous recommandons de prendre en compte les implications spécifiques en matière de performances en fonction de votre scénario d'utilisation. Pour des informations plus détaillées, reportez-vous au projet GitHub dans la mise à jour de la réponse, qui fournit des résultats et un scénario de test.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal