티스토리 뷰

test 디렉토리 안에 여러 파일들이 있다. 이 중 파일명이 JPG로 끝나는 파일들만 추출하고 싶다면, FileNameFilter 인터페이스를 구현해서 쉽게 찾을 수 있다.

D
ㄴtest
    ㄴamericano.JPG
    ㄴcafelatte.JPG
    ㄴFile.md
    ㄴlayout.html
    ㄴtest.txt
public class FileExample2 {
    public static void main(String[] args) throws Exception {
    File f = new File("D:\\test\\");

    File[] fileList = f.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
        return name.endsWith("JPG");
        }
    }); 

    for (File file : fileList) {
        System.out.println("[" + file.getName() + "]");
    }

    }
}
[americano.JPG]
[cafelatte.JPG]

test 디렉토리에 있는 파일 리스트를 가져온다. 단, filter의 조건에 일치하는 파일만 반환한다. 이 예제에서는 이름이 JPG로 끝나는 파일들만 조건에 만족하기 때문에 해당 File들이 반환된다.

참고 : 익명클래스인 FileNameFilter를 람다 표현식으로 고치면 코드가 간결해진다.
File[] fileList = f.listFiles((dir, name) -> name.endsWith("JPG"));

댓글