Java FilenameFilterインターフェース

JavaのFilenameFilterをFile.listと組み合わせてファイル名をフィルタリングする方法

FilenameFilterインターフェースは、システム内で特定のファイル名を含む一覧だけを取得するためのフィルタリング処理に使用し、Fileクラスのlist()メソッドの引数として渡します。

FilenameFilterメソッド

メソッド 説明
boolean accept(File dir, String name) パスのディレクトリ(dir)とファイル名(name)を受け取ります。

FilenameFilterインターフェースには、一覧内の各ファイルに対して1回だけ呼び出されるaccept()メソッドが1つだけ存在します。フィルタリングしたいファイルに対してaccept()メソッドをオーバーライドする必要があります。フィルタリングに含めたいファイル名にはtrueを返し、除外したいファイル名にはfalseを返します。

FilenameFilterの例

次の例は、ディレクトリを受け取り、ファイル名が.javaで終わるファイル名を表示します。

package com.devkuma.tutorial.java.io;

import java.io.File;
import java.io.FilenameFilter;

class JavaFilenameFilter implements FilenameFilter {

    public boolean accept(File dir, String name) {
        return name.endsWith(".java");
    }
}

public class FilenameFilterInterface {

    public static void main(String[] args) {
        File file = new File("src/main/java/com/devkuma/tutorial/javaio");

        JavaFilenameFilter filter = new JavaFilenameFilter();

        for (String path : file.list(filter)) {
            System.out.println(path);
        }
    }
}

Output:

FileClass.java
FilenameFilterInterface.java