Heim  >  Artikel  >  Java  >  Einführung in Java-Dateioperationen und Dateifilter (mit Beispielen)

Einführung in Java-Dateioperationen und Dateifilter (mit Beispielen)

不言
不言Original
2018-09-20 15:08:573664Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in Java-Dateioperationen und Dateifilter (mit Beispielen). Freunde in Not können darauf zurückgreifen.

Dateioperationen

Java stellt die File-Klasse zur Verfügung, mit der wir Dateien bedienen können. FIle ist eine abstrakte Darstellung einer Datei oder eines Ordners, also eine Objektdarstellung. Fasst mehrere häufig verwendete Methoden zusammen

  • File(File parenrt,String child), FIle(String pathname), File(String parent,String child), die drei Konstruktoren können auf mehrere Arten implementiert werden Instanziierung.

  • getAbsolutePath(): Gibt den absoluten Pfad dieser Datei oder dieses Ordners zurück

  • getName(): Gibt den Namen dieses Ordners oder dieser Datei zurück

  • getPath(): Gibt die Darstellung dieses Ordners oder dieser Datei zurück, die der Parameter im Konstruktionsparameter ist

  • createNewFIle(): Erstellt eine neue Dateien

  • mkdir(): Erstellen Sie ein neues Verzeichnis. Beachten Sie, dass nur eine Ebene erstellt werden kann.

  • mkdirs(): Erstellen Sie ein mehrschichtiges Verzeichnis

  • isDirectory(): Bestimmen Sie, ob es sich um ein Verzeichnis handelt

  • isFile(): Bestimmen Sie, ob es sich um eine Datei handelt

  • list(): Gibt ein String-Array mit Namen von Dateien oder Verzeichnissen zurück.

  • listFiles(): Gibt ein Array mit Dateiobjekten von Dateien oder Verzeichnissen zurück

Dateifilter:

Die Funktion listFiles() gibt eine Liste von Dateiobjekten zurück, und manchmal benötigen wir nur bestimmte Dateien, wie z. B. TXT-Dateien und den Rest Sie müssen nicht zurückgegeben werden, obwohl sie nach dem Betreiben des Arrays zurückgegeben werden können. Dies ist jedoch etwas zu kompliziert. Java stellt uns zwei Schnittstellen bereit: FilenameFilter und FileFilter. Übergeben Sie dieses Schnittstellenobjekt an die Parameter von listFiles, um den Zweck zu erreichen Filterung. Das Accept in der Schnittstelle ist die Filterfunktion, die für jede erhaltene Datei aufgerufen wird. Wenn „true“ zurückgegeben wird, wird sie in das Array eingefügt:

FilenameFilter: Wir können nur den Namen der Datei oder des Verzeichnisses verwenden. Der dir-Parameter ist das aktuelle Objekt, in dem sich die Datei befindet, nicht das FIle-Objekt der Datei. Daher verwenden wir im Allgemeinen nur den Namensparameter

public interface FilenameFilter {
   boolean accept(File dir, String name);
}

FileFilter:

FileFilter Filter, der Parameter pathname ist das FIle-Objekt der Datei, über das wir alle Attribute der Datei abrufen können. Beispielsweise ist pathname.getName() der Name der Datei. der in einen indirekten FIlenameFilter umgewandelt werden kann. Leistungsstarke Funktion

public interface FileFilter {
    boolean accept(File pathname);
}

Beispiel:

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);
        }
    }
}

Das obige ist der detaillierte Inhalt vonEinführung in Java-Dateioperationen und Dateifilter (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn