FilenameFilter — 파일 이름 필터

FilenameFilter — 파일 이름 필터

FilenameFilter 인터페이스를 구현하는 클래스의 인스턴스는 파일 이름을 필터링하는 데 사용돼요. 이 인스턴스들은 클래스 Filelist 메서드에서 디렉터리 목록을 필터링하고, Abstract Window Toolkit의 파일 대화 상자 구성 요소에서도 사용돼요.

출처: Java API Reference

본문

이 인터페이스는 함수형 인터페이스(functional interface)이므로 람다 표현식이나 메서드 참조의 할당 대상으로 사용할 수 있어요. FileFilterFile 객체를 받는 데 비해, FilenameFilter는 디렉터리와 파일 이름 문자열을 받는 점이 달라요.

메서드

  • boolean accept(File dir, String name) — 지정한 파일이 파일 목록에 포함돼야 하는지 테스트해요. dir은 파일이 있는 디렉터리이고 name은 파일 이름이에요. 이름이 포함돼야 하면 true를 반환해요.

FilenameFilterFile.list(FilenameFilter)와 함께 사용해 특정 조건(예: 확장자)에 맞는 파일 이름만 목록에 포함시킬 때 유용해요. 람다로 간결하게 쓸 수 있어요.

File dir = new File(".");
String[] txt = dir.list((d, name) -> name.endsWith(".txt"));

더 알아보기 (Learn more)