>  기사  >  Java  >  Java利用FileNameFilter类的accept()函数过滤指定目录下的文件

Java利用FileNameFilter类的accept()函数过滤指定目录下的文件

WBOY
WBOY원래의
2023-07-25 09:03:251982검색

Java는 FileNameFilter 클래스의 accept() 함수를 사용하여 지정된 디렉터리의 파일을 필터링합니다.

소개:
Java에서는 지정된 디렉터리의 파일을 필터링해야 하는 경우가 많습니다. 이때 FileNameFilter 인터페이스를 사용하여 파일 이름을 필터링할 수 있습니다. 이 기사에서는 FileNameFilter 클래스의 accept() 함수를 사용하여 파일 필터링을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. FileNameFilter란 무엇인가요?
FileNameFilter는 디렉터리의 파일을 필터링하기 위한 accept(파일 디렉터리, 문자열 이름) 메서드를 정의하는 인터페이스입니다. 이 메서드가 true를 반환하면 파일이 허용된다는 뜻이고, 그렇지 않으면 허용되지 않는다는 의미입니다.

2. FileNameFilter를 사용하여 파일을 필터링하는 방법은 무엇입니까?
파일 필터링을 위해 FileNameFilter 인터페이스를 사용하는 단계는 다음과 같습니다.

  1. FileNameFilter 인터페이스를 구현하는 클래스를 만들고 accept() 메서드를 구현합니다. 이 방법에서는 파일 필터링 규칙을 정의할 수 있습니다.
  2. 지정된 디렉터리를 나타내는 파일 개체를 만듭니다.
  3. 파일 개체의 listFiles() 메서드를 호출하여 디렉터리의 모든 파일을 가져옵니다.
  4. 파일 배열을 탐색하고 FileNameFilter 개체의 accept() 메서드를 호출하여 각 파일을 필터링합니다. 승인된 파일은 결과 세트에 추가됩니다.

다음은 FileNameFilter를 사용하여 지정된 디렉터리의 파일을 필터링하는 방법에 대한 예입니다.

import java.io.*;

public class FileFilterExample {

    public static void main(String[] args) {
        File dir = new File("C:/folder");//指定目录
        String[] fileList;

        //创建一个实现了FileNameFilter接口的内部类
        FileNameFilterImpl filter = new FileNameFilterImpl(".txt");

        //调用listFiles()方法获取目录下的所有文件
        fileList = dir.list(filter);

        //遍历文件名数组
        for (String fileName : fileList) {
            System.out.println(fileName);
        }
    }

    //实现FileNameFilter接口的内部类
    static class FileNameFilterImpl implements FilenameFilter {
        private String ext;//扩展名

        public FileNameFilterImpl(String ext) {
            this.ext = ext;
        }

        //实现accept()方法
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(ext);//只接受指定扩展名文件
        }
    }
}

위 샘플 코드에서는 FileNameFilter 인터페이스를 구현하는 내부 클래스 FileNameFilterImpl을 만들었습니다. accept() 메서드에서는 파일 이름의 확장자가 ".txt"인지 확인하여 지정된 디렉터리의 모든 txt 파일을 필터링합니다.

main() 메소드에서 먼저 C:/folder 디렉토리를 나타내는 File 객체를 생성합니다. 그런 다음 FileNameFilterImpl 객체를 생성하고 이를 File 객체의 list() 메소드에 매개변수로 전달했습니다. list() 메서드는 필터링된 파일 목록을 나타내는 문자열 배열을 반환합니다. 마지막으로 for 루프를 사용하여 필터링된 파일 이름을 탐색하고 출력했습니다.

위는 지정된 디렉터리의 파일을 필터링하기 위해 Java에서 FileNameFilter 클래스의 accept() 함수를 사용하는 방법에 대한 이 기사의 소개입니다. FileNameFilter 인터페이스를 통해 우리는 필요에 따라 원하는 파일을 유연하게 필터링할 수 있습니다. 이 기사가 독자들이 FileNameFilter를 이해하고 사용하는 데 도움이 되기를 바랍니다.

위 내용은 Java利用FileNameFilter类的accept()函数过滤指定目录下的文件의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:다음 기사: