FileFilter arayüzü hakkında ne söyleyebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
FileFilter, java.io paketinde bulunan ve belirli kriterlere göre dosyaları filtrelemek için kullanılan fonksiyonel bir arayüzdür. Bir soyut metoda sahiptir: boolean accept(File pathname).
Metodun imzası:
// Belirtilen soyut yolun dosya adıyla uyumlu olup olmadığını kontrol eder.
boolean accept(File pathname);
accept(File pathname) metodu, pathname nesnesiyle temsil edilen dosya veya dizinin filtre koşullarını karşılaması durumunda true, aksi takdirde false döner.
FileFilter, genellikle dosya listeleriyle çalışan metodlarda kullanılır, örneğin:
list(FileFilter filter)Filesınıfında.listFiles(FileFilter filter)Filesınıfında.
Sadece dosyaları (dizinleri hariç tutarak) filtrelemek için kullanım örneği:
import java.io.File;
import java.io.FileFilter;
public class OnlyFilesFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Mevcut dizin
// Sadece dosyaları kabul eden FileFilter oluşturuyoruz
FileFilter onlyFilesFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile(); // Dosya ise true döner
}
};
// Filtreyi kullanarak dosya listesini alıyoruz
File[] fichiers = dir.listFiles(onlyFilesFilter);
if (fichiers != null) {
for (File fichier : fichiers) {
System.out.println(fichier.getName());
}
}
}
}
Java 8 ve sonrası için lambda ifadeleri kullanımı (çünkü FileFilter fonksiyonel bir arayüzdür):
import java.io.File;
import java.io.FileFilter;
public class LambdaFileFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Mevcut dizin
// Lambda ifadesi kullanarak FileFilter
File[] directories = dir.listFiles(pathname -> pathname.isDirectory()); // Dizinleri filtreleme
if (directories != null) {
for (File directory : directories) {
System.out.println(directory.getName());
}
}
}
}
FileFilter, dosya sistemiyle çalışmak için tekrar kullanılabilir filtre kriterleri oluşturmanıza olanak tanır.