Heim  >  Artikel  >  Java  >  Java verwendet die Funktion „accept()“ der Klasse „FileNameFilter“, um Dateien im angegebenen Verzeichnis zu filtern

Java verwendet die Funktion „accept()“ der Klasse „FileNameFilter“, um Dateien im angegebenen Verzeichnis zu filtern

WBOY
WBOYOriginal
2023-07-25 09:03:251935Durchsuche

Java verwendet die Funktion „accept()“ der Klasse „FileNameFilter“, um Dateien in einem bestimmten Verzeichnis zu filtern.

Einführung:
In Java müssen wir häufig Dateien in einem bestimmten Verzeichnis filtern. Zu diesem Zeitpunkt können Sie die FileNameFilter-Schnittstelle zum Filtern von Dateinamen verwenden. In diesem Artikel wird erläutert, wie die Funktion „accept()“ der Klasse „FileNameFilter“ zum Implementieren der Dateifilterung verwendet wird, und es werden entsprechende Codebeispiele bereitgestellt.

1. Was ist FileNameFilter?
FileNameFilter ist eine Schnittstelle, die die Methode „accept(File dir, String name)“ zum Filtern von Dateien im Verzeichnis definiert. Wenn diese Methode „true“ zurückgibt, bedeutet dies, dass die Datei akzeptiert wird, andernfalls wird sie nicht akzeptiert.

2. Wie verwende ich FileNameFilter zum Filtern von Dateien?
Die Schritte zur Verwendung der FileNameFilter-Schnittstelle zum Filtern von Dateien sind wie folgt:

  1. Erstellen Sie eine Klasse, die die FileNameFilter-Schnittstelle implementiert, und implementieren Sie die Methode „accept()“. Bei dieser Methode können Sie Regeln für die Dateifilterung definieren.
  2. Erstellen Sie ein Dateiobjekt, das das angegebene Verzeichnis darstellt.
  3. Rufen Sie die listFiles()-Methode des File-Objekts auf, um alle Dateien im Verzeichnis abzurufen.
  4. Durchlaufen Sie das Dateiarray und rufen Sie die Methode „accept()“ des FileNameFilter-Objekts auf, um jede Datei zu filtern. Akzeptierte Dateien werden einem Ergebnissatz hinzugefügt.

Das Folgende ist ein Beispiel für die Verwendung von FileNameFilter zum Filtern von Dateien in einem bestimmten Verzeichnis:

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

Im obigen Beispielcode haben wir eine interne Klasse FileNameFilterImpl erstellt, die die FileNameFilter-Schnittstelle implementiert. In der Methode „accept()“ filtern wir alle TXT-Dateien im angegebenen Verzeichnis heraus, indem wir feststellen, ob die Erweiterung des Dateinamens „.txt“ ist.

In der main()-Methode erstellen wir zunächst ein File-Objekt, das das Verzeichnis C:/folder darstellt. Dann haben wir ein FileNameFilterImpl-Objekt erstellt und es als Parameter an die list()-Methode des File-Objekts übergeben. Die Methode list() gibt ein String-Array zurück, das die gefilterte Dateiliste darstellt. Schließlich haben wir eine for-Schleife verwendet, um die gefilterten Dateinamen zu durchlaufen und auszugeben.

Das Obige ist die Einführung dieses Artikels in die Verwendung der Funktion „accept()“ der Klasse „FileNameFilter“ durch Java zum Filtern von Dateien im angegebenen Verzeichnis. Über die FileNameFilter-Schnittstelle können wir die gewünschten Dateien flexibel nach unseren eigenen Bedürfnissen herausfiltern. Ich hoffe, dass dieser Artikel den Lesern hilft, FileNameFilter zu verstehen und zu verwenden.

Das obige ist der detaillierte Inhalt vonJava verwendet die Funktion „accept()“ der Klasse „FileNameFilter“, um Dateien im angegebenen Verzeichnis zu filtern. 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