Wat kunt u vertellen over de FileFilter-interface?
sobes.tech AI
Antwoord van AI
FileFilter is een functioneel interface in de package java.io, dat wordt gebruikt om bestanden te filteren op basis van opgegeven criteria. Het heeft één abstracte methode: boolean accept(File pathname).
Handtekening van de methode:
// Controleert of het opgegeven abstracte pad overeenkomt met de bestandsnaam.
boolean accept(File pathname);
De methode accept(File pathname) retourneert true als het bestand of de directory, voorgesteld door het object pathname, voldoet aan de filtervoorwaarden, en false anders.
FileFilter wordt vaak gebruikt in methoden die werken met lijsten van bestanden, zoals:
list(FileFilter filter)in de klasseFile.listFiles(FileFilter filter)in de klasseFile.
Voorbeeld van gebruik om alleen bestanden te filteren (exclusief directories):
import java.io.File;
import java.io.FileFilter;
public class OnlyFilesFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Huidige directory
// Maak een FileFilter dat alleen bestanden accepteert
FileFilter onlyFilesFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile(); // Retourneert true als het een bestand is
}
};
// Gebruik de filter om de lijst van bestanden te krijgen
File[] fichiers = dir.listFiles(onlyFilesFilter);
if (fichiers != null) {
for (File fichier : fichiers) {
System.out.println(fichier.getName());
}
}
}
}
Gebruik van lambda-uitdrukkingen (beschikbaar vanaf Java 8, omdat FileFilter een functioneel interface is):
import java.io.File;
import java.io.FileFilter;
public class LambdaFileFilterExample {
public static void main(String[] args) {
File dir = new File("."); // Huidige directory
// Gebruik een lambda-uitdrukking als FileFilter
File[] directories = dir.listFiles(pathname -> pathname.isDirectory()); // Filter voor directories
if (directories != null) {
for (File directory : directories) {
System.out.println(directory.getName());
}
}
}
}
FileFilter maakt het mogelijk om herbruikbare filtercriteria te maken voor het werken met het bestandssysteem.