Suchen Sie nach Textfilen im Verzeichnis

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du mit Java in einem Verzeichnis nach Textfilen suchen kannst. Dieses Projekt führt dich durch den Prozess, um den Eingabepfad vom Benutzer zu erhalten, die Eingabe zu validieren, alle Textfilen im Verzeichnis zu finden und ihre Namen auszugeben.

👀 Vorschau

Bitte geben Sie den Lese-Pfad ein:/home/labex/project/files
Gefundene Textfilen:
file1.txt
file3.txt
file6.txt

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Scanner-Klasse verwendest, um Benutzereingaben für den Verzeichnispfad zu erhalten
  • Wie du den Eingabepfad mit der File-Klasse validierst
  • Wie du einen benutzerdefinierten FilenameFilter erstellst, um Textfilen zu filtern
  • Wie du die listFiles()-Methode verwendest, um alle Textfilen im Verzeichnis zu finden
  • Wie du durch die gefundenen Textfilen iterierst und ihre Namen ausgibst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Benutzereingaben für einen Verzeichnispfad mit der Scanner-Klasse zu erhalten
  • Den Eingabepfad mit der File-Klasse zu validieren
  • Einen benutzerdefinierten FilenameFilter zu implementieren, um Textfilen zu filtern
  • Die listFiles()-Methode zu nutzen, um alle Textfilen in einem Verzeichnis abzurufen
  • Durch die gefundenen Textfilen zu iterieren und ihre Namen auszugeben

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) 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{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/for_loop -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/output -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/user_input -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/interface -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/files -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/read_files -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} java/io -.-> lab-300396{{"Suchen Sie nach Textfilen im Verzeichnis"}} end

Den Eingabepfad erhalten

In diesem Schritt lernst du, wie du die Scanner-Klasse verwendest, um den angegebenen Pfad vom Benutzer zu erhalten.

  1. Öffne die Datei SelectTxtFile.java in deinem Code-Editor.
  2. Im main-Methode erstelle ein neues Scanner-Objekt, um Benutzereingaben zu lesen:
Scanner scanner = new Scanner(System.in);
  1. Zeige eine Aufforderungsnachricht an den Benutzer, in der du ihn um den Lese-Pfad bittest:
System.out.print("Bitte geben Sie den Lese-Pfad ein:");
  1. Verwende die nextLine()-Methode, um die Benutzereingabe zu lesen und sie in der path-Variablen zu speichern:
String path = scanner.nextLine();
  1. Nachdem du die Eingabe gelesen hast, schließe den Scanner, um die Ressourcen freizugeben:
scanner.close();
✨ Lösung prüfen und üben

Überprüfen Sie den Eingabepfad auf Gültigkeit

In diesem Schritt lernen Sie, wie Sie die File-Klasse verwenden, um zu überprüfen, ob der Eingabepfad ein gültiges Verzeichnis ist.

  1. Erstellen Sie ein neues File-Objekt mit dem vom Benutzer bereitgestellten path:
File directory = new File(path);
  1. Verwenden Sie die exists()-Methode, um zu überprüfen, ob das Verzeichnis existiert:
if (!directory.exists() ||!directory.isDirectory()) {
  1. Wenn das Verzeichnis nicht existiert oder kein Verzeichnis ist, geben Sie eine Fehlermeldung aus und beenden Sie das Programm:
    System.out.println("Das Verzeichnis existiert nicht oder ist kein Verzeichnis");
    return;
}
✨ Lösung prüfen und üben

Suchen Sie nach Textfilen im Verzeichnis

In diesem Schritt lernen Sie, wie Sie einen FilenameFilter verwenden, um alle Textfilen im Verzeichnis zu finden.

  1. Erstellen Sie eine neue Klasse TxtFileFilter, die das Interface FilenameFilter implementiert:
static class TxtFileFilter implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt");
    }
}
  1. Verwenden Sie die listFiles()-Methode der File-Klasse, um ein Array von Dateien im Verzeichnis zu erhalten und sie mit dem TxtFileFilter zu filtern:
File[] files = directory.listFiles(new TxtFileFilter());
✨ Lösung prüfen und üben

Drucken Sie die gefundenen Textfilen

In diesem letzten Schritt lernen Sie, wie Sie durch die gefundenen Textfilen iterieren und ihre Namen ausgeben.

  1. Drucken Sie einen Header, um anzuzeigen, dass Textfilen gefunden wurden:
System.out.println("Gefundene Textfilen:");
  1. Verwenden Sie eine for-each-Schleife, um durch das files-Array zu iterieren und den Namen jedes Dokuments auszugeben:
for (File file : files) {
    System.out.println(file.getName());
}

Das war's! Sie haben jetzt das Projekt abgeschlossen, um nach Textfilen in einem Verzeichnis zu suchen. Sie können Ihr Programm testen, indem Sie die Klasse SelectTxtFile ausführen.

✨ Lösung prüfen und üben

Überprüfen des Java-Programms zur Dateisuche

In diesem Schritt überprüfen wir das Java-Programm zur Dateisuche.

  1. Öffnen Sie Ihr Terminal und kompilieren Sie die Java-Datei mit dem Befehl javac:
javac SelectTxtFile.java
  1. Nachdem die Java-Datei erfolgreich kompiliert wurde, führen Sie das kompilierte Programm mit dem Befehl java aus:
java SelectTxtFile
  1. Wenn Sie das Java-Programm ausführen, werden Sie dazu aufgefordert, den Lese-Pfad einzugeben. Geben Sie den Verzeichnispfad ein, in dem sich die Textfilen befinden, und drücken Sie die Eingabetaste.
  • Wenn das Verzeichnis nicht existiert oder kein Verzeichnis ist, erhalten Sie eine Meldung, die das Problem angibt.
  • Wenn das Verzeichnis gültig ist und Textfilen enthält, wird das Programm die Namen der in diesem Verzeichnis gefundenen Textfilen anzeigen.

Hier ist ein Beispiel für die erwartete Ausgabe:

Bitte geben Sie den Lese-Pfad ein:/home/labex/project/files
Gefundene Textfilen:
file1.txt
file3.txt
file6.txt

Indem Sie diese Schritte befolgen, können Sie die Funktionalität des Java-Programms zur Auswahl von Textfilen überprüfen.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.