Home > Java > javaTutorial > Java uses the accept() function of the FileNameFilter class to filter files in the specified directory

Java uses the accept() function of the FileNameFilter class to filter files in the specified directory

WBOY
Release: 2023-07-25 09:03:25
Original
2044 people have browsed it

Java uses the accept() function of the FileNameFilter class to filter files in the specified directory

Introduction:
In Java, we often need to filter files in the specified directory. At this time, you can use the FileNameFilter interface to filter file names. This article will introduce how to use the accept() function of the FileNameFilter class to implement file filtering, and provide corresponding code examples.

1. What is FileNameFilter?
FileNameFilter is an interface that defines the accept(File dir, String name) method for filtering files in the directory. When this method returns true, it means that the file is accepted, otherwise it is not accepted.

2. How to use FileNameFilter to filter files?
The steps to use the FileNameFilter interface for file filtering are as follows:

  1. Create a class that implements the FileNameFilter interface and implement the accept() method. In this method, you can define rules for file filtering.
  2. Create a File object representing the specified directory.
  3. Call the listFiles() method of the File object to obtain all files in the directory.
  4. Traverse the file array and call the accept() method of the FileNameFilter object for each file to filter. Accepted files will be added to a result set.

The following is an example of how to use FileNameFilter to filter files in a specified directory:

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);//只接受指定扩展名文件
        }
    }
}
Copy after login

In the above sample code, we created an internal class that implements the FileNameFilter interface FileNameFilterImpl. In the accept() method, we filter out all txt files in the specified directory by determining whether the extension of the file name is ".txt".

In the main() method, we first create a File object, representing the C:/folder directory. Then, we created a FileNameFilterImpl object and passed it as a parameter to the File object's list() method. The list() method returns a String array representing the filtered file list. Finally, we used a for loop to traverse and output the filtered file names.

The above is this article’s introduction to Java’s use of the accept() function of the FileNameFilter class to filter files in the specified directory. Through the FileNameFilter interface, we can flexibly filter out the files we want according to our own needs. I hope this article will help readers understand and use FileNameFilter.

The above is the detailed content of Java uses the accept() function of the FileNameFilter class to filter files in the specified directory. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template