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
FilenameFiltererstellst, 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
FilenameFilterzu 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
Beziehen Sie sich auf den Eingabepfad
In diesem Schritt lernst du, wie du die Scanner-Klasse verwendest, um den angegebenen Pfad vom Benutzer zu erhalten.
- Öffne die Datei
SelectTxtFile.javain deinem Code-Editor. - Im
main-Methode erstelle ein neuesScanner-Objekt, um Benutzereingaben zu lesen:
Scanner scanner = new Scanner(System.in);
- 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:");
- Verwende die
nextLine()-Methode, um die Benutzereingabe zu lesen und sie in derpath-Variablen zu speichern:
String path = scanner.nextLine();
- Nachdem du die Eingabe gelesen hast, schließe den
Scanner, um die Ressourcen freizugeben:
scanner.close();
Validieren Sie den Eingabepfad
In diesem Schritt lernen Sie, wie Sie die File-Klasse verwenden, um zu überprüfen, ob der Eingabepfad ein gültiges Verzeichnis ist.
- Erstellen Sie ein neues
File-Objekt mit dem vom Benutzer bereitgestelltenpath:
File directory = new File(path);
- Verwenden Sie die
exists()-Methode, um zu überprüfen, ob das Verzeichnis existiert:
if (!directory.exists() ||!directory.isDirectory()) {
- 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;
}
Suchen Sie nach Textfilen im Verzeichnis
In diesem Schritt lernen Sie, wie Sie einen FilenameFilter verwenden, um alle Textfilen im Verzeichnis zu finden.
- Erstellen Sie eine neue Klasse
TxtFileFilter, die das InterfaceFilenameFilterimplementiert:
static class TxtFileFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
}
- Verwenden Sie die
listFiles()-Methode derFile-Klasse, um ein Array von Dateien im Verzeichnis zu erhalten und sie mit demTxtFileFilterzu filtern:
File[] files = directory.listFiles(new TxtFileFilter());
Drucken Sie die gefundenen Textfilen
In diesem letzten Schritt lernen Sie, wie Sie durch die gefundenen Textfilen iterieren und ihre Namen ausgeben.
- Drucken Sie einen Header, um anzuzeigen, dass Textfilen gefunden wurden:
System.out.println("Gefundene Textfilen:");
- Verwenden Sie eine
for-each-Schleife, um durch dasfiles-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.
Java-Programm zur Dateisuche überprüfen
In diesem Schritt überprüfen wir das Java-Programm zur Dateisuche.
- Öffnen Sie Ihr Terminal und kompilieren Sie die Java-Datei mit dem Befehl
javac:
javac SelectTxtFile.java
- Nachdem die Java-Datei erfolgreich kompiliert wurde, führen Sie das kompilierte Programm mit dem Befehl
javaaus:
java SelectTxtFile
- 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.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.



