Rechercher des fichiers texte dans un répertoire

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à rechercher des fichiers texte dans un répertoire à l'aide de Java. Ce projet vous guidera tout au long du processus d'obtention du chemin d'entrée de l'utilisateur, de la validation de l'entrée, de la recherche de tous les fichiers texte dans le répertoire et de l'impression de leurs noms.

👀 Aperçu

Veuillez entrer le chemin de lecture :/home/labex/project/files
Fichiers texte trouvés :
file1.txt
file3.txt
file6.txt

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment utiliser la classe Scanner pour obtenir l'entrée de l'utilisateur pour le chemin du répertoire
  • Comment valider le chemin d'entrée à l'aide de la classe File
  • Comment créer un FilenameFilter personnalisé pour filtrer les fichiers texte
  • Comment utiliser la méthode listFiles() pour trouver tous les fichiers texte dans le répertoire
  • Comment itérer sur les fichiers texte trouvés et imprimer leurs noms

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Obtenir l'entrée de l'utilisateur pour un chemin de répertoire à l'aide de la classe Scanner
  • Valider le chemin d'entrée à l'aide de la classe File
  • Implémenter un FilenameFilter personnalisé pour filtrer les fichiers texte
  • Utiliser la méthode listFiles() pour récupérer tous les fichiers texte dans un répertoire
  • Itérer sur les fichiers texte trouvés et imprimer leurs noms

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/interface("Interface") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/read_files("Read Files") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/if_else -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/for_loop -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/output -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/user_input -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/interface -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/files -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/read_files -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} java/io -.-> lab-300396{{"Rechercher des fichiers texte dans un répertoire"}} end

Obtenir le chemin d'entrée

Dans cette étape, vous allez apprendre à utiliser la classe Scanner pour obtenir le chemin spécifié par l'utilisateur.

  1. Ouvrez le fichier SelectTxtFile.java dans votre éditeur de code.
  2. Dans la méthode main, créez un nouvel objet Scanner pour lire l'entrée de l'utilisateur :
Scanner scanner = new Scanner(System.in);
  1. Affichez un message d'invite à l'utilisateur demandant le chemin de lecture :
System.out.print("Veuillez entrer le chemin de lecture :");
  1. Utilisez la méthode nextLine() pour lire l'entrée de l'utilisateur et la stocker dans la variable path :
String path = scanner.nextLine();
  1. Après avoir lu l'entrée, fermez le Scanner pour libérer les ressources :
scanner.close();
✨ Vérifier la solution et pratiquer

Valider le chemin d'entrée

Dans cette étape, vous allez apprendre à utiliser la classe File pour vérifier si le chemin d'entrée est un répertoire valide.

  1. Créez un nouvel objet File avec le path fourni par l'utilisateur :
File directory = new File(path);
  1. Utilisez la méthode exists() pour vérifier si le répertoire existe :
if (!directory.exists() ||!directory.isDirectory()) {
  1. Si le répertoire n'existe pas ou n'est pas un répertoire, affichez un message d'erreur et quittez le programme :
    System.out.println("Le répertoire n'existe pas, ou ce n'est pas un répertoire");
    return;
}
✨ Vérifier la solution et pratiquer

Trouver les fichiers texte dans le répertoire

Dans cette étape, vous allez apprendre à utiliser un FilenameFilter pour trouver tous les fichiers texte dans le répertoire.

  1. Créez une nouvelle classe TxtFileFilter qui implémente l'interface FilenameFilter :
static class TxtFileFilter implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt");
    }
}
  1. Utilisez la méthode listFiles() de la classe File pour obtenir un tableau de fichiers dans le répertoire, en les filtrant avec le TxtFileFilter :
File[] files = directory.listFiles(new TxtFileFilter());
✨ Vérifier la solution et pratiquer

Afficher les fichiers texte trouvés

Dans cette dernière étape, vous allez apprendre à itérer sur les fichiers texte trouvés et à imprimer leurs noms.

  1. Affichez un en-tête pour indiquer que des fichiers texte ont été trouvés :
System.out.println("Fichiers texte trouvés :");
  1. Utilisez une boucle for-each pour itérer sur le tableau files et imprimer le nom de chaque fichier :
for (File file : files) {
    System.out.println(file.getName());
}

C'est tout! Vous avez maintenant terminé le projet de recherche de fichiers texte dans un répertoire. Vous pouvez tester votre programme en exécutant la classe SelectTxtFile.

✨ Vérifier la solution et pratiquer

Vérification du programme Java de recherche de fichiers

Dans cette étape, nous allons vérifier le programme Java de recherche de fichiers.

  1. Ouvrez votre terminal et compilez le fichier Java à l'aide de la commande javac :
javac SelectTxtFile.java
  1. Après avoir compilé avec succès le fichier Java, exécutez le programme compilé à l'aide de la commande java :
java SelectTxtFile
  1. Lorsque vous exécutez le programme Java, vous serez invité à entrer le chemin de lecture. Fournissez le chemin du répertoire où se trouvent les fichiers texte et appuyez sur Entrée.
  • Si le répertoire n'existe pas ou n'est pas un répertoire, vous recevrez un message indiquant le problème.
  • Si le répertoire est valide et contient des fichiers texte, le programme affichera les noms des fichiers texte trouvés dans ce répertoire.

Voici un exemple de sortie attendue :

Veuillez entrer le chemin de lecture:/home/labex/project/files
Fichiers texte trouvés :
file1.txt
file3.txt
file6.txt

En suivant ces étapes, vous pouvez vérifier la fonctionnalité du programme Java pour sélectionner des fichiers texte.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer davantage de laboratoires sur LabEx pour améliorer vos compétences.