Java.Streams.What do you know about the FileFilter interface?

📘 What is FileFilter?

  • It’s part of java.io.
  • It’s a functional interface with one method:
boolean accept(File pathname);

Used to filter files or directories based on your logic (e.g., extension, size, name pattern).

🔧 Common Use Case

Used with:

File[] filteredFiles = directory.listFiles(FileFilter filter);

✅ Example: Filter .txt Files

import java.io.*;

public class TxtFileFilterDemo {
    public static void main(String[] args) {
        File dir = new File("documents");

        File[] txtFiles = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File file) {
                return file.getName().endsWith(".txt");
            }
        });

        for (File file : txtFiles) {
            System.out.println(file.getName());
        }
    }
}

🧠 Java 8+ Lambda Version

Because it’s a functional interface, you can use a lambda:

File[] txtFiles = dir.listFiles(file -> file.getName().endsWith(".txt"));

Much cleaner! 🧼


💡 Real-World Uses

ScenarioFilter Logic
Only images`name.endsWith(“.jpg”)
Only directoriesfile.isDirectory()
Files > 1MBfile.length() > 1024 * 1024

🧵 TL;DR

FeatureDescription
Type@FunctionalInterface
Methodboolean accept(File pathname)
PurposeFilter files returned by listFiles()
Added inJava 1.2
AlternativeFilenameFilter (older, takes name as string)
This entry was posted in Без рубрики. Bookmark the permalink.

Leave a Reply

Your email address will not be published.