Maison  >  Article  >  Java  >  Java utilise la fonction accept() de la classe FileNameFilter pour filtrer les fichiers dans le répertoire spécifié

Java utilise la fonction accept() de la classe FileNameFilter pour filtrer les fichiers dans le répertoire spécifié

WBOY
WBOYoriginal
2023-07-25 09:03:251935parcourir

Java utilise la fonction accept() de la classe FileNameFilter pour filtrer les fichiers dans un répertoire spécifié

Introduction :
En Java, nous devons souvent filtrer les fichiers dans un répertoire spécifié. À l'heure actuelle, vous pouvez utiliser l'interface FileNameFilter pour filtrer les noms de fichiers. Cet article explique comment utiliser la fonction accept() de la classe FileNameFilter pour implémenter le filtrage de fichiers et fournit des exemples de code correspondants.

1. Qu'est-ce que FileNameFilter ?
FileNameFilter est une interface qui définit la méthode accept(File dir, String name) pour filtrer les fichiers dans le répertoire. Lorsque cette méthode renvoie vrai, cela signifie que le fichier est accepté, sinon il n'est pas accepté.

2. Comment utiliser FileNameFilter pour filtrer les fichiers ?
Les étapes pour utiliser l'interface FileNameFilter pour le filtrage de fichiers sont les suivantes :

  1. Créez une classe qui implémente l'interface FileNameFilter et implémentez la méthode accept(). Dans cette méthode, vous pouvez définir des règles de filtrage des fichiers.
  2. Créez un objet File représentant le répertoire spécifié.
  3. Appelez la méthode listFiles() de l'objet File pour obtenir tous les fichiers du répertoire.
  4. Parcourez le tableau de fichiers et appelez la méthode accept() de l'objet FileNameFilter pour filtrer chaque fichier. Les fichiers acceptés seront ajoutés à un ensemble de résultats.

Ce qui suit est un exemple de la façon d'utiliser FileNameFilter pour filtrer des fichiers dans un répertoire spécifié :

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

Dans l'exemple de code ci-dessus, nous avons créé une classe interne FileNameFilterImpl qui implémente l'interface FileNameFilter. Dans la méthode accept(), nous filtrons tous les fichiers txt du répertoire spécifié en déterminant si l'extension du nom de fichier est « .txt ».

Dans la méthode main(), nous créons d'abord un objet File, représentant le répertoire C:/folder. Ensuite, nous avons créé un objet FileNameFilterImpl et l'avons passé en tant que paramètre à la méthode list() de l'objet File. La méthode list() renvoie un tableau String représentant la liste de fichiers filtrée. Enfin, nous avons utilisé une boucle for pour parcourir et afficher les noms de fichiers filtrés.

Ce qui précède est l'introduction de cet article à l'utilisation par Java de la fonction accept() de la classe FileNameFilter pour filtrer les fichiers dans le répertoire spécifié. Grâce à l'interface FileNameFilter, nous pouvons filtrer de manière flexible les fichiers que nous souhaitons en fonction de nos propres besoins. J'espère que cet article aidera les lecteurs à comprendre et à utiliser FileNameFilter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn