Maison >Java >javaDidacticiel >Introduction aux opérations sur les fichiers Java et aux filtres de fichiers (avec exemples)
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.
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.
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
. 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); }.
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); }
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); } } }
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!