FilenameFilter — 파일 이름 필터
FilenameFilter — 파일 이름 필터
FilenameFilter 인터페이스를 구현하는 클래스의 인스턴스는 파일 이름을 필터링하는 데 사용돼요. 이 인스턴스들은 클래스 File의 list 메서드에서 디렉터리 목록을 필터링하고, Abstract Window Toolkit의 파일 대화 상자 구성 요소에서도 사용돼요.
본문
이 인터페이스는 함수형 인터페이스(functional interface)이므로 람다 표현식이나 메서드 참조의 할당 대상으로 사용할 수 있어요. FileFilter가 File 객체를 받는 데 비해, FilenameFilter는 디렉터리와 파일 이름 문자열을 받는 점이 달라요.
메서드
boolean accept(File dir, String name)— 지정한 파일이 파일 목록에 포함돼야 하는지 테스트해요.dir은 파일이 있는 디렉터리이고name은 파일 이름이에요. 이름이 포함돼야 하면true를 반환해요.
FilenameFilter는 File.list(FilenameFilter)와 함께 사용해 특정 조건(예: 확장자)에 맞는 파일 이름만 목록에 포함시킬 때 유용해요. 람다로 간결하게 쓸 수 있어요.
File dir = new File(".");
String[] txt = dir.list((d, name) -> name.endsWith(".txt"));