FileFilter 2

2944 ワード

package demo03Filter;
import java.io.File;
需要:c:abcフォルダとabcフォルダのサブフォルダを遍歴する.java末尾のファイルc:abcabcabcabc.txt c:abcabcabcabcabcjavac:abcabcaaaa.jpg c:abcaaajavac:abcabcbb.javac:abcabcbbb.javac:abcabcbbb.txtフィルタを使用して、Fileクラスに2つとListFilesをリロードする方法を実現することができます.方法のパラメータを渡すのはフィルタFilFilFilFilFilFilFilFilFilFilFilFilFilFilFille[]listFiles(FileFilter filter)java.io.FileFilterインタフェース:抽象パス名(Fileオブジェクト)用のフィルタ.役割:ファイル(Fileオブジェクト)をフィルタするための抽象メソッド:ファイルをフィルタするためのメソッドboolean accept(File pathname)テスト抽象パス名がパス名リストに含まれるべきかどうかを指定します.パラメータ:File pathname:ListFilesメソッドを使用してディレクトリを巡回し、取得した各ファイルオブジェクトFile[]listFiles(FilenameFilter)java.io.FilenameFilterインタフェース:このインタフェースを実装するクラスインスタンスをフィルタファイル名に使用できます.≪アクション|Action|emdw≫:ファイル名の抽象メソッドのフィルタリング:ファイルをフィルタするメソッドboolean accept(File dir,String name)は、指定したファイルがファイルのリストに含まれるべきかどうかをテストします.パラメータ:File dir:構築方法で渡される遍歴されたディレクトリString name:ListFilesメソッドを使用してディレクトリを遍歴し、取得した各ファイル/フォルダの名前注意:2つのフィルタインタフェースには実装クラスがなく、実装クラスを自分で書き、フィルタリング方法acceptを書き換え、メソッドでフィルタリングのルール*/public class Demo 02 Filterを自分で定義する必要がある{ public static void main(String[] args) { File file = new File("c:\abc"); getAllFile(file); }
/*
          ,    File     
              
 */
public static void getAllFile(File dir){
    //               
    /*File[] files = dir.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            //    ,pathname       .java       true
            return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java");
        }
    });*/

    //  Lambda          (           )
    /*File[] files = dir.listFiles((File pathname)->{
        return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java");
    });*/

    File[] files = dir.listFiles(pathname->pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java"));

    /*File[] files = dir.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            //    ,pathname       .java       true
            return new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".java");
        }
    });*/

    //  Lambda          (           )
    /*File[] files = dir.listFiles((File d, String name)->{
        //    ,pathname       .java       true
        return new File(d,name).isDirectory() || name.toLowerCase().endsWith(".java");
    });*/

    //File[] files = dir.listFiles((d,name)->new File(d,name).isDirectory() || name.toLowerCase().endsWith(".java"));

    for (File f : files) {
        //      File  f    ,        
        if(f.isDirectory()){
            //f      ,          
            //    getAllFile         ,        
            //      getAllFile    :  (      )
            getAllFile(f);
        }else{
            //f     ,      
            System.out.println(f);
        }
    }
}

}