diff --git a/javaSE-day08/src/com/inmind/filefilter03/FileFilterDemo13.java b/javaSE-day08/src/com/inmind/filefilter03/FileFilterDemo13.java new file mode 100644 index 0000000..5ea2d67 --- /dev/null +++ b/javaSE-day08/src/com/inmind/filefilter03/FileFilterDemo13.java @@ -0,0 +1,37 @@ +package com.inmind.filefilter03; + +import java.io.File; + +/* + 文件过滤器的基本使用 + 1.文件过滤器的相关的api: + File[] listFiles(FileFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 + + 2.@FunctionalInterface + public interface FileFilter + 抽象方法的介绍: + boolean accept(File pathname)中的参数pathname是一个文件或者文件夹对象,它就是当前调用listFiles方法的文件夹中的每个子元素, + 每个子元素会依次进入到accept方法中,执行得到结果,如果结果是true就保存在返回值(File[] )中,否则就直接过滤掉。 + + 3.过滤器的基本使用步骤: + 1.创建一个文件夹对象 + 2.先定义一个符合业务的文件过滤器实现类 + 3.调用listFiles(FileFilter filter) + + + 需求:将指定的目录中的一级子内容中,使用文件过滤器,直接获取到一级目录的.txt后缀的文件 + */ +public class FileFilterDemo13 { + public static void main(String[] args) { + //1.创建一个文件夹对象 + File file = new File("D:\\io_test"); + //2.先定义一个符合业务的文件过滤器实现类 + FileFilterImpl fileFilter = new FileFilterImpl(); + //3.调用listFiles(FileFilter filter) + File[] files = file.listFiles(fileFilter); + + for (File f : files) { + System.out.println(f.getName()); + } + } +} diff --git a/javaSE-day08/src/com/inmind/filefilter03/FileFilterImpl.java b/javaSE-day08/src/com/inmind/filefilter03/FileFilterImpl.java new file mode 100644 index 0000000..0650518 --- /dev/null +++ b/javaSE-day08/src/com/inmind/filefilter03/FileFilterImpl.java @@ -0,0 +1,11 @@ +package com.inmind.filefilter03; + +import java.io.File; +import java.io.FileFilter; +//文件过滤器的目标:目录的.txt后缀的文件 +public class FileFilterImpl implements FileFilter { + @Override + public boolean accept(File f) { + return f.isFile() && f.getName().endsWith(".txt"); + } +}