Dieser Artikel bietet Ihnen eine Einführung in Java-Dateioperationen und Dateifilter (mit Beispielen). Freunde in Not können darauf zurückgreifen.
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
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:
public interface FilenameFilter { boolean accept(File dir, String name); }
FileFilter:
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!