Heim Java javaLernprogramm Zusammenfassung der Verwendung von Java IO-Dateifiltern

Zusammenfassung der Verwendung von Java IO-Dateifiltern

Jun 17, 2017 pm 01:55 PM
java 使用 总结 文件 过滤器

Der Java-IO-Flow verwendet viele Designmuster, das typischste ist der Dekorationsmodus und der Befehlsmodus. Das Folgende ist in zwei Teile unterteilt, um über Java-IO-Dateien zu sprechen Werfen wir einen Blick auf die Verwendung des Filters im Befehlsentwurfsmuster

1. Das Highlight

Java io Flow wird häufig verwendet. Die typischsten Designmodi sind der Dekorationsmodus und der Befehlsmodus. Durch die einfache Verwendung der Dateifilterfunktion erhalten Sie einen Einblick in die typische Verwendung des Befehlsentwurfsmusters durch Java IO-Streams. Das Folgende ist in zwei Teile gegliedert. Zuerst werde ich ein Beispiel für die einfache Verwendung des Dateifilters geben und es dann auf die Verwendung des Befehlsentwurfsmusters erweitern Wenn Sie ein tieferes Verständnis des Befehlsmusters haben möchten, lesen Sie bitte andere Artikel.

2. Beispiel

Wenn wir Javaprogrammieren, werden wir auf Dateien oder Verzeichnisse zugreifen Verwenden Sie die File-Klasse. File ist eine sehr leistungsstarke Klasse, die unabhängig von Dateien oder Verzeichnissen verwendet werden kann. Wenn Sie Dateien durchlaufen möchten, verwenden Sie die list()-Methode der File-Klasse. Sie listet alle Unterdateinamen und Pfadnamen des aktuellen Dateiobjekts auf aufgeführt? Die File-Klasse bietet eine weitere überladene Methodenliste (FilenameFilter) mit Filterfunktion. Die Methode wird wie folgt deklariert:

public String[] list(FilenameFilter filter);
Nach dem Login kopieren

Der FilenameFilter im Parameter ist die Dateinamen-Filterschnittstelle. Unser benutzerdefinierter Dateinamenfilter muss diese Schnittstelle implementieren und die Methode Accept () implementieren, um die Regeln anzupassen. Die Deklaration der FilenameFilter-Schnittstelle lautet wie folgt:

public interface FilenameFilter {
 boolean accept(File dir, String name);
}
Nach dem Login kopieren

Schauen wir uns an, wie man sie verwendet. Es bedeutet, alle Dateinamen oder Pfadnamen aufzulisten, die mit .xml im aktuellen Arbeitsbereich enden.

1. Schreiben Sie einen benutzerdefinierten Dateifilter:

package org.light4j.io.fileFilter;
import java.io.File;
import java.io.FilenameFilter;
/**
 * 自定义文件名过滤器
 * 
 * @author longjiazuo
 * 
 */
public class MyFilenameFilter implements FilenameFilter {
 @Override
 public boolean accept(File dir, String name) {
  // 如果文件以.xml结尾则符合条件返回true
  return name.endsWith(".xml");
 }
}
Nach dem Login kopieren

2. Schreiben Sie eine Testklasse

package org.light4j.io.fileFilter;
import java.io.File;
/**
 * 文件过滤器测试
 * 
 * <p>
 * 列出当前工作目录下符合条件的所有子文件名和路径名
 * </p>
 * 
 * @author longjiazuo
 * 
 */
public class FilenameFilterTest {
 public static void main(String[] args) {
  // 获取工作目录
  String workDir = System.getProperty("user.dir");
  File file = new File(workDir);
  // 列举当前工作目录下的所有文件
  String[] files = file.list(new MyFilenameFilter());
  // 循环遍历
  for (String string : files) {
   System.out.println(string);
  }
 }
}
Nach dem Login kopieren

Wenn Sie den obigen Code ausführen, können Sie auf der Konsole sehen, dass nur Dateinamen oder Pfadnamen aufgelistet werden, die mit .xml enden.

3. Befehlsentwurfsmuster

Beim Befehlsmuster geht es darum, wie ein Objekt verarbeitet wird, indem ein anderes Objekt aufgefordert wird, seine Methode aufzurufen, um einen bestimmten Vorgang abzuschließen Im Funktionsmodus interagiert ein Objekt nicht direkt mit dem angeforderten Objekt, sondern kapselt die Anforderung in ein Befehlsobjekt. , wobei das Befehlsobjekt als Parameter übergeben wird. Der Kern des Befehlsmusters besteht darin, Befehlsobjekte zum Kapseln von Methodenaufrufen zu verwenden.

In einem Projekt werden wir nicht nur eine Klasse haben, daher geht es oft darum, dass ein Objekt ein anderes Objekt auffordert, seine Methode aufzurufen, um einen bestimmten Zweck zu erreichen. Wenn der Anforderer zu diesem Zeitpunkt nicht direkt mit dem Anforderer interagieren möchte oder kann, mit anderen Worten, der Anforderer enthält nicht die Referenz des Anforderers, wie können die beiden dann zu diesem Zeitpunkt interagieren? Befehlsmodell, um das Ziel zu erreichen. Wenn wir beispielsweise jeden Tag etwas zum Mitnehmen bestellen, verhandeln wir nicht direkt mit dem Restaurant, sondern gehen zum Einkaufen auf die Website zum Mitnehmen, z. B. Meituan. Die Website zum Mitnehmen teilt dem Restaurant Ihre Anfrage zum Mitnehmen als Bestellauftrag mit Sobald die Bestellung erfolgreich ist, geben Sie sie an das Restaurant weiter und Sie erhalten garantiert etwas zum Mitnehmen.

Nun zurück zur Verwendung von Dateifiltern: Die Listenmethode (FilenameFilter-Filter) der File-Klasse implementiert die Funktion zum Filtern von Dateinamen, indem sie ein Schnittstellenobjekt als Parameter verwendet. Die spezifische Regeldefinition befindet sich im FilenameFilter Schnittstelle Dies ist in der Methode „accept()“ der Unterklasse implementiert. Dies ist die Verwendung des Befehlsentwurfsmusters.

Logischerweise können wir die Regel einfach übergeben, da die Methode list(FilenameFilter filter) eine Regel benötigt, um zu bestimmen, welche Dateien aufgelistet werden müssen. Diese Regel ist ein Codeblock, das aktuelle Java tut dies jedoch nicht Die Übergabe von Codeblöcken an die Methode wird nicht unterstützt, daher verwendet Java die Methode „accept()“ von FilenameFilter, um die Beurteilungsregeln zu kapseln. Die Funktion des übergebenen MyFilenameFilter-Objekts besteht tatsächlich darin, den Methodenkörper der Methode „accept()“ zu übergeben . Die Funktion dieses Methodenkörpers besteht darin, zu bestimmen, welche Dateinamen oder Pfadnamen den Regeln entsprechen. Der Implementierungsquellcode von list(FilenameFilter) lautet wie folgt:

Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung von Java IO-Dateifiltern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

See all articles