Maison >Java >javaDidacticiel >Comment les fichiers `Files.walk()` et `Files.find()` de Java 8 peuvent-ils rationaliser la liste des fichiers récursifs ?
Liste de fichiers récursifs en Java : rationalisé grâce aux améliorations du framework
Contexte :
Itération sur tous les fichiers d’une structure de répertoires sont un besoin courant dans la programmation Java. Cependant, de nombreuses implémentations ont tendance à être complexes et manquent de prise en charge du framework.
Solution Framework (Java 8) : Files.walk() et Files.find()
Java 8 a introduit des mécanismes élégants pour l'itération des fichiers :
Exemple de code :
En utilisant Files.walk(), vous pouvez répertorier de manière récursive tous les fichiers normaux dans un répertoire spécifié comme suit :
try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
Filtrage conditionnel (facultatif) :
Si un filtrage des attributs de fichier est requis, Files.find( ) offre une efficacité accrue :
Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
Performance Considérations :
Files.walk() et Files.find() fonctionnent généralement de manière identique dans la pratique. Cependant, Files.find() peut être légèrement plus efficace lors du filtrage basé sur les attributs.
Notes supplémentaires :
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!