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);
}
}
}
|
|