Введение
В этом проекте вы научитесь искать текстовые файлы в директории с использованием Java. В этом проекте вас проведет по процессу получения пути ввода от пользователя, проверки ввода, поиска всех текстовых файлов в директории и вывода их имен.
👀 Предварительный просмотр
Пожалуйста, введите путь для чтения:/home/labex/project/files
Найденные текстовые файлы:
file1.txt
file3.txt
file6.txt
🎯 Задачи
В этом проекте вы научитесь:
- Как использовать класс
Scannerдля получения ввода пользователя для пути к директории - Как проверить введенный путь с использованием класса
File - Как создать пользовательский
FilenameFilterдля фильтрации текстовых файлов - Как использовать метод
listFiles()для поиска всех текстовых файлов в директории - Как перебирать найденные текстовые файлы и выводить их имена
🏆 Достижения
После завершения этого проекта вы сможете:
- Получать ввод пользователя для пути к директории с использованием класса
Scanner - Проверять введенный путь с использованием класса
File - Реализовать пользовательский
FilenameFilterдля фильтрации текстовых файлов - Использовать метод
listFiles()для получения всех текстовых файлов в директории - Перебирать найденные текстовые файлы и выводить их имена
Получить путь ввода
В этом шаге вы научитесь использовать класс Scanner для получения указанного пути от пользователя.
- Откройте файл
SelectTxtFile.javaв вашем редакторе кода. - В методе
mainсоздайте новый объектScannerдля чтения ввода пользователя:
Scanner scanner = new Scanner(System.in);
- Отобразите сообщение-подсказку для пользователя, запрашивающее путь для чтения:
System.out.print("Please enter the read path:");
- Используйте метод
nextLine()для чтения ввода пользователя и сохраните его в переменнойpath:
String path = scanner.nextLine();
- После чтения ввода закройте
Scanner, чтобы освободить ресурсы:
scanner.close();
Проверить правильность вводимого пути
В этом шаге вы научитесь использовать класс File для проверки, является ли введенный путь действительной директорией.
- Создайте новый объект
Fileс путем, предоставленным пользователем:
File directory = new File(path);
- Используйте метод
exists()для проверки существования директории:
if (!directory.exists() ||!directory.isDirectory()) {
- Если директория не существует или не является директорией, выведите сообщение об ошибке и завершите программу:
System.out.println("The directory does not exist, or it is not a directory");
return;
}
Найти текстовые файлы в директории
В этом шаге вы научитесь использовать FilenameFilter для поиска всех текстовых файлов в директории.
- Создайте новый класс
TxtFileFilter, который реализует интерфейсFilenameFilter:
static class TxtFileFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
}
- Используйте метод
listFiles()классаFileдля получения массива файлов в директории, отфильтровав их с использованиемTxtFileFilter:
File[] files = directory.listFiles(new TxtFileFilter());
Напечатать найденные текстовые файлы
В этом последнем шаге вы научитесь перебирать найденные текстовые файлы и выводить их имена.
- Распечатайте заголовок, чтобы показать, что текстовые файлы были найдены:
System.out.println("Found text files:");
- Используйте цикл
for-eachдля перебора массиваfilesи распечатайте имя каждого файла:
for (File file : files) {
System.out.println(file.getName());
}
Вот и все! Теперь вы завершили проект по поиску текстовых файлов в директории. Вы можете протестировать свою программу, запустив класс SelectTxtFile.
Проверка Java-программы для поиска файлов
В этом шаге мы проверим Java-программу для поиска файлов.
- Откройте терминал и скомпилируйте Java-файл с помощью команды
javac:
javac SelectTxtFile.java
- После успешной компиляции Java-файла запустите скомпилированную программу с помощью команды
java:
java SelectTxtFile
- При запуске Java-программы вас попросят ввести путь для чтения. Укажите путь к директории, в которой находятся текстовые файлы, и нажмите Enter.
- Если директория не существует или не является директорией, вы получите сообщение с указанием проблемы.
- Если директория действительна и содержит текстовые файлы, программа выведет имена найденных в этой директории текстовых файлов.
Вот пример ожидаемого вывода:
Please enter the read path:/home/labex/project/files
Found text files:
file1.txt
file3.txt
file6.txt
Следуя этим шагам, вы можете проверить функциональность Java-программы для выбора текстовых файлов.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



