java 核心编程——文件过滤类,FileFilter和FilenameFilter

1.FileFilter

package test;

import java.io.File;
import java.io.FileFilter;

public class FileFilterTest implements FileFilter {
    
    
    private String extension;
    
    public FileFilterTest(String extension) {

        this.extension = extension;
    }
    /**
     * 
     */
    @Override
    public boolean accept(File pathname) {
            
        if(pathname.isDirectory()){
            return false;
        }
        
        String name = pathname.getName();
        int num = name.lastIndexOf(".");
        if(num == -1){
            return false;
        }
        if(name.length()-1 == num){
            return false;
        } else {
        
            return extension.equals(name.substring(num+1));
        }
    }
    
    
    public static void main(String[] args) {
        
        File path = new File("E:\\书籍\\java 编程");
        //获得过滤对象
        FileFilterTest ft = new FileFilterTest("pdf");
        
        File[] files = path.listFiles(ft);
        
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i].getAbsolutePath());
        } 
        
    }

}

2.FilenameFilter

package test;

import java.io.File;
import java.io.FilenameFilter;

public class FileNameFilterTest implements FilenameFilter {
    
    //判断图片是否格式是否是 gif
    private boolean isGif(String fileName){
        if(fileName.toLowerCase().endsWith(".gif")){
            return true;
        } else {
            return false;
        }
        
    }
    //判断图片是否格式是否是 jpg
    private boolean isJpg(String fileName){
        if(fileName.toLowerCase().endsWith(".jpg")){
            return true;
        } else {
            return false;
        }
        
    }
    //判断图片是否格式是否是 png
    private boolean isPng(String fileName){
        if(fileName.toLowerCase().endsWith(".png")){
            return true;
        } else {
            return false;
        }
        
    }
    
    

    @Override
    public boolean accept(File dir, String name) {
        return (isGif(name)||isJpg(name)||isPng(name));
    }
    
    public static void main(String[] args) {
        File path = new File("C:\\img");
        //获得过滤对象
        FileNameFilterTest ft = new FileNameFilterTest();
        
        File[] f = path.listFiles(ft);
        
        for (int i = 0; i < f.length; i++) {
            File file = f[i];
            
            System.out.println(file.getAbsolutePath());
            
        }
    }

}