文件过滤器
作者:互联网
利用java.io包里的File类,可以实现对文件的操作。
现在有个需求,要求遍历一个文件夹及其子文件夹里的所有文件,并且过滤出txt格式的文件,该如何做呢?
实现方法很简单,首先是通过递归遍历文件,然后对获得的文件,判断其是不是以"txt"结尾就可以了。
代码如下:
1 public static void getAllFile(File dir) { 2 File[] fileArr = dir.listFiles(); 3 for(File file:fileArr) { 4 if(file.isDirectory()) 5 getAllFile(file); 6 if(file.isFile()) { 7 String fileName = file.getName(); 8 if(fileName.toLowerCase().endsWith("txt")) 9 System.out.println(file); 10 } 11 } 12 }
其中,getAllFile的参数dir是文件的路径。
运行结果如图
也可以通过文件过滤器来实现。
代码如下:
class FileFilterImpl implements FileFilter{ public boolean accept(File pathname) { //如果pathname 是个文件夹,返回true if(pathname.isDirectory()) return true; return pathname.getName().toLowerCase().endsWith("txt"); } public static void getAllFile(File dir) {
//listFiles()函数将获得的路径名传给accept方法,
//accept方法判断是文件还是文件夹,如果是文件夹返回true,
//如果是文件,判断是不是txt格式的,如果是返回true,否则返回false
File[] fileArr = dir.listFiles(new FileFilterImpl()); //文件过滤器 for(File file:fileArr) { if(file.isDirectory()) getAllFile(file); if(file.isFile()) { System.out.println(file); } } }
运行结果如图:
标签:文件,file,File,过滤器,getAllFile,txt,dir 来源: https://www.cnblogs.com/Chsy/p/11807240.html