Найти в Дзене
DEBAGanov

Java 973. Что вы знаете об интерфейсе FilenameFilter?

Для фильтрации содержимого директории в 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