A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.iostream;
/*
*  获取封装的目录的下文件
*    实现文件过滤器功能
*   
*  c:\\demo  目录下的记事本文件,其他文件不要
*  
*  File[] listFiles(FileFilter filter) 重载形式
*  传递参数,参数文件过滤器,传递FileFilter类型的对象,传递实现类对象
*  FileFilter接口,自定义实现类,重写方法
*/
import java.io.*;

class MyFilter implements FileFilter{
        /*
         * accept方法由File类的listFiles负责调用,并传递参数
         * listFile方法,会将获取到的路径,传递给accept方法参数pathname
         * 只要accept方法返回true,这个路径,就会被装进File数组中
         * 对传递的参数pathname进行判断
         * 只要文件名后缀是.txt的路径,返回true
         */
        public boolean accept(File pathname){
                //c:\demo\1.accdb  pathname
                //c:\demo\1.txt    pathname
                //路径转成字符串, getName()
                //字符串方法 endsWith()字符串是不是以另一个字符串结尾,如果是返回true
                String name = pathname.getName().toLowerCase();
                //return name.endsWith(".gif") || name.endsWith(".jpg") || name.endsWith(".png");
                return name.endsWith(".txt");
               
        }
}

public class FileDemo2 {
        public static void main(String[] args) {
                method_1();
        }
        /*
         * 定义方法,使用listFiles方法实现文件过滤器
         * 方法listFiles的时候,传递FileFilter接口实现类的对象
         */
        public static void method_1(){
                File file = new File("c:\\demo");
                //传递过滤器对象
                File[] files = file.listFiles(new MyFilter());
                for(File f : files){
                        System.out.println(f);
                }
        }
       
       
        /*
         * 定义方法,没有过滤器,File对象封装目录c:\demo
         * listFile获取
         */
        public static void method(){
                File file = new File("c:\\demo");
                File[] files = file.listFiles();
                for(File f : files){
                        System.out.println(f);
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马