diff --git a/s-day08/src/com/inmind/filefilter03/Demo13.java b/s-day08/src/com/inmind/filefilter03/Demo13.java new file mode 100644 index 0000000..8f08a52 --- /dev/null +++ b/s-day08/src/com/inmind/filefilter03/Demo13.java @@ -0,0 +1,31 @@ +package com.inmind.filefilter03; + +import java.io.File; +import java.util.Arrays; + +/* +15.过滤器的基本使用 +File[] listFiles(FileFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 + +FileFilter + boolean accept(File pathname) :pathname是一个文件或者文件夹对象,它就是当前调用listFiles方法的文件夹中每个子元素,将它们 + 依次作为File对象,传入accept方法,执行代码,得到boolean的结果,如果是true则满足条件,放入返回值中File[],如果是false则过滤掉 + +过滤器的基本使用: + 1.创建文件夹对象 + 2.定义一个自定义的文件过滤器实现类 + 3.调用listFiles(FileFilter filter) + + //需求:将制定目录的一级子内容中,使用文件过滤,直接获取所有.txt文件 + */ +public class Demo13 { + public static void main(String[] args) { + //1.创建文件夹对象 + File file = new File("D:\\io_test"); + //2.定义一个自定义的文件过滤器实现类 + MyFileFilter myFileFilter = new MyFileFilter(); + //3.调用listFiles(FileFilter filter) + File[] files = file.listFiles(myFileFilter); + System.out.println(Arrays.toString(files)); + } +} diff --git a/s-day08/src/com/inmind/filefilter03/MyFileFilter.java b/s-day08/src/com/inmind/filefilter03/MyFileFilter.java new file mode 100644 index 0000000..b062bec --- /dev/null +++ b/s-day08/src/com/inmind/filefilter03/MyFileFilter.java @@ -0,0 +1,17 @@ +package com.inmind.filefilter03; + +import java.io.File; +import java.io.FileFilter; + +public class MyFileFilter implements FileFilter { + @Override + public boolean accept(File f) { + //业务操作是文件且以.txt结尾的,保留,否则过滤掉 + /*if (f.isFile() && f.getName().endsWith(".txt")) { + return true; + } else { + return false; + }*/ + return f.isFile() && f.getName().endsWith(".txt"); + } +}