方案2:过滤器
- package com.kxg.file;
- import java.io.File;
- import java.io.FilenameFilter;
- /*
- * FilenameFilter接口:实现此接口的类实例可用于过滤器文件名
- * public String[] list(FilenameFilter filter):获取符合过滤器的文件名数组
- * public File[] listFiles(FilenameFilter filter):获取符合过滤器的文件对象数组
- */
- public class FileDemo8 {
- public static void main(String[] args) {
- // 封装D:\Test目录
- File f = new File("D:\\Test");
- // 得到此目录下所有的文件和文件夹对象
- File[] arr = f.listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- // System.out.println(dir + "..." + name);
- // 输出参数中的dir和name得知,dir是目录,name是文件夹和文件名
- // 通过File的构造方法得到所有的f对象
- File f = new File(dir, name);
- // 判断是否文件
- boolean flag = f.isFile();
- // 判断是否以.txt结尾
- boolean flag2 = f.getName().endsWith(".txt");
- // 综合前面两个的结果,如果是true就加入到数组中去
- boolean flag3 = flag && flag2;
- return flag3;
- // 可以简化为:return new File(dir, name).isFile() &&
- // name.endsWith(".txt");
- }
- });
- // 遍历得到所有的File对象
- for (File file : arr) {
- System.out.println(file.getName());
- }
- }
- }
复制代码
|