FileFilter interfeysi haqqında nə deyə bilərsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
FileFilter, java.io paketində mövcud olan və müəyyən edilmiş meyarlar əsasında faylları filtrləmək üçün istifadə olunan funksional interfeysdir. Bir abstrakt metodu var: boolean accept(File pathname).
Metodun imzası:
// Verilmiş abstrakt yolun fayl adlarına uyğun olub-olmadığını yoxlayır.
boolean accept(File pathname);
accept(File pathname) metodu, pathname obyekti ilə təmsil olunan fayl və ya qovluğun filtr şərtlərinə cavab verdiyi halda true, əks halda false qaytarır.
FileFilter çox vaxt fayl siyahıları ilə işləyən metodlarda istifadə olunur, məsələn:
list(FileFilter filter)Filesinifində.listFiles(FileFilter filter)Filesinifində.
Yalnız faylları (qovluqları istisna edərək) filtrləmək üçün nümunə:
import java.io.File;
import java.io.FileFilter;
public class OnlyFilesFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Cari qovluq
// Yalnız faylları qəbul edən FileFilter yaradın
FileFilter onlyFilesFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile(); // Fayl isə true qaytarır
}
};
// Filtrdən istifadə edərək fayl siyahısını alın
File[] fichiers = dir.listFiles(onlyFilesFilter);
if (fichiers != null) {
for (File fichier : fichiers) {
System.out.println(fichier.getName());
}
}
}
}
Java 8 və yuxarı versiyalar üçün lambda ifadələrindən istifadə (çünki FileFilter funksional interfeysdir):
import java.io.File;
import java.io.FileFilter;
public class LambdaFileFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Cari qovluq
// Lambda ifadəsi ilə FileFilter istifadə edin
File[] directories = dir.listFiles(pathname -> pathname.isDirectory()); // Qovluqları filtrləyir
if (directories != null) {
for (File directory : directories) {
System.out.println(directory.getName());
}
}
}
}
FileFilter fayl sistemində işləmək üçün təkrar istifadə oluna bilən filtr kriteriyaları yaratmağa imkan verir.