Maison > Java > javaDidacticiel > le corps du texte

Introduction aux opérations sur les fichiers Java et aux filtres de fichiers (avec exemples)

不言
Libérer: 2018-09-20 15:08:57
original
3633 Les gens l'ont consulté

Cet article vous présente une introduction aux opérations sur les fichiers Java et aux filtres de fichiers (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Opérations sur les fichiers

Java fournit la classe File pour nous permettre d'exploiter les fichiers. FIle est une représentation abstraite d'un fichier ou d'un dossier, c'est-à-dire une représentation d'objet. Résumé plusieurs méthodes couramment utilisées

  • File(File parenrt,String child), FIle(String pathname), File(String parent,String child), les trois constructeurs peuvent être de multiples façons d'implémenter instanciation.

  • getAbsolutePath() : renvoie le chemin absolu de ce fichier ou dossier

  • getName() : renvoie le nom de ce dossier ou fichier

  • getPath() : Renvoie la représentation de ce dossier ou fichier, qui est le paramètre dans le paramètre de construction

  • createNewFIle() : Crée un new Files

  • mkdir() : Créez un nouveau répertoire, notez qu'un seul calque peut être créé,

  • mkdirs() : Créez un répertoire multicouche

  • isDirectory() : Déterminer s'il s'agit d'un répertoire

  • isFile() : Déterminer s'il s'agit d'un fichier

  • list() : renvoie un tableau de chaînes de noms de fichiers ou de répertoires.

  • listFiles() : renvoie un tableau d'objets fichier de fichiers ou de répertoires.

Filtre de fichiers :

La fonction listFiles() renvoie une liste d'objets fichiers, et parfois nous n'avons besoin que de fichiers spécifiques, tels que les fichiers .txt, et le reste n'ont pas besoin d'être renvoyés, bien qu'ils puissent être renvoyés après. Ensuite, faites fonctionner le tableau, mais c'est un peu trop compliqué. Java nous fournit deux interfaces FilenameFilter et FileFilter. Passez cet objet d'interface dans les paramètres de listFiles pour atteindre l'objectif de. filtration. L'acceptation dans l'interface est la fonction de filtre. Cette méthode est appelée pour chaque fichier obtenu. Si true est renvoyé, il est mis dans le tableau. Sinon, le

FilenameFilter est supprimé :

. Filtre FilenameFilter , nous ne pouvons utiliser que le nom du fichier ou du répertoire. Le paramètre dir est l'objet actuel où se trouve le fichier, pas l'objet FIle du fichier. Nous utilisons donc généralement simplement le paramètre name

public interface FilenameFilter {
   boolean accept(File dir, String name);
}
Copier après la connexion
.

FileFilter :

Filtre FileFilter, le paramètre pathname est l'objet FIle du fichier, grâce auquel nous pouvons obtenir tous les attributs du fichier. Par exemple, pathname.getName() est le nom du fichier. fichier, qui peut être transformé en FIlenameFilter indirect. Fonctions puissantes

public interface FileFilter {
    boolean accept(File pathname);
}
Copier après la connexion

Exemple :

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/**
 * 自定义的局部内部类来自定义过滤器类,
 */
public class Generics {
    //自定义过滤器类实现FilenameFilter接口
    static class MyFilenameFilter implements FilenameFilter{
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    //自定义过滤器类实现FileFilter接口
    static class MyFileFilter implements FileFilter{
        @Override
        public boolean accept(File pathname) {
            return pathname.getName().endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    public static void main(String[] args) {
        File file =new File("D:");
        //方式一:FileFilter过滤器
        File[] files=file.listFiles(new MyFileFilter());
        for (File f:files){
            System.out.println(f.getName());
        }
        //方式二:FilenameFilter过滤器
        File[] files2=file.listFiles(new MyFilenameFilter());
        for (File f:files2){
            System.out.println(f.getName());
        }
        //list()函数只能接受FilenameFilter对象,匿名内部类的形式实现,
        //或者可以理解为为什么既然有FileFilter,而还要FilenameFilter
            //  1.对于listFiles来说,FilenameFilter可以直接操作name,而不需要通过File对象获取
            //  2.对于list来说,它只能是FilenameFilter过滤器,因为得到的是String,已经不是File了
        String[] filenames = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".java");
            }
        });
        for(String str:filenames){
            System.out.println(str);
        }
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!