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