Для фильтрации содержимого директории в Java используется интерфейс FilenameFilter. Он содержит один метод boolean accept(File dir, String name), который принимает два аргумента: объект типа File, представляющий родительскую директорию, и строку с именем файла. Метод accept() должен возвращать true, если файл должен быть включен в результаты списка, и false, если файл должен быть исключен.
Например, следующий код демонстрирует, как использовать интерфейс FilenameFilter для вывода только файлов с расширением ".txt" из директории:
import java.io.*;
public class FilterFiles {
public static void main(String[] args) {
// указываем путь к директории
File dir = new File("/path/to/directory");
// создаем экземпляр класса, реализующего интерфейс FilenameFilter
FilenameFilter txtFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
};
// получаем список файлов, отфильтрованных по расширению
File[] filesList = dir.listFiles(txtFilter);
// выводим список файлов
for (File file : filesList) {
if (file.isFile()) {
System.out.println(file.getName());
}
}
}
}
Этот код создает объект типа FilenameFilter с помощью анонимного класса и метода accept() для фильтрации файлов с расширением .txt. Затем создается массив File[] с отфильтрованными файлами и выводятся их имена.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov