Java 입문 | java.io 패키지 | FilenameFilter 인터페이스


FilenameFilter 인터페이스는 시스템에서 특정한 파일 이름을 포함하는 목록들만 얻기 위해서 필터링(filtering) 작업을 위해서 사용하며, File 클래스의 list() 메소드의 매개변수로 전달한다.

FilenameFilter 메소드

메소드 설명
boolean accept(File dir, String name) 경로 디렉토리(dir)와 파일명(name)을 입력받는다.

FilenameFilter 인터페이스는 리스트에서 각 파일에 대해 한번만 호출되는 accept() 메소드 한개만 존재한다. 필터링 하고자 하는 파일에 대해 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);
        }
    }
}

실행 결과는 아래와 같다.

FileClass.java
FilenameFilterInterface.java