Filter(二)——Java利用FileFilter过滤文件
2014-02-02 01:51
423 查看
package cn.com; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.List; //问题描述:统计某个文件夹下,满足条件的文件个数 //1 利用FileFilter过滤出满足条件的文件 //2 if (file.isDirectory()|| (file.isFile() && file.getName().contains(keyword))) // 当该文件是目录或者该文件名包含关键字则返回true // 2.1文件名包含关键字当然是结果之一 // 2.2如果是目录,则需要再后面递归调用该方法. //3 注意递归的使用 public class FileTest { static int filesCount = 0; static int foldersCount = 0; List<File> filesArrayList = new ArrayList<File>(); public static void main(String[] args) { FileTest fileTest=new FileTest(); File folder = new File("F:\\te"); String keyword = "test"; File[] filesResult= fileTest.getFiles(folder, keyword); System.out.println("在此目录下一共有目录:"+foldersCount+"个"); System.out.println("在此目录下一共有文件:"+filesCount+"个"); System.out.println("满足条件的文件共计:"+filesResult.length+"个"); } public File[] getFiles(File folder, final String keyword){ //1 得到目录和满足条件的文件 File[] filterFiles = folder.listFiles(new FileFilter() { @Override public boolean accept(File file) { if (file.isFile()) { filesCount++; } if (file.isDirectory()) { foldersCount++; } if (file.isDirectory()|| (file.isFile() && file.getName().contains(keyword))) { return true; } else { return false; } } }); //2 将1结果中的文件直接添加到集合且用目录进行迭代 for (int i = 0; i < filterFiles.length; i++) { if (filterFiles[i].isFile()) { filesArrayList.add(filterFiles[i]); } if (filterFiles[i].isDirectory()) { getFiles(filterFiles[i],keyword); } } //3 返回结果 File finalFiles[] = new File[filesArrayList.size()]; filesArrayList.toArray(finalFiles); return finalFiles; } }
相关文章推荐
- Filter(二)——Java利用FileFilter过滤文件
- Java 利用过滤器Filter 实现登录过滤
- javaWeb利用Filter解决中文乱码问题
- javaweb中利用filter进行修改字符集
- Java学习之Filter
- 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)
- JAVA 利用反射机制查询数据库返回相应对象
- 浅谈JAVA中如何利用socket进行网络编程(二)
- 关于如何在docker中利用tomcat和MySQL容器部署java web应用的详细步骤
- java利用反射技术遍历某个对象的属性及属性值
- 【JAVA-Spring】利用spring-websocket包来搭建websocket服务
- 利用Java调用可执行命令
- 利用java反射实现两个具有相同属性bean赋值
- 【hadoop2.6.0】利用Hadoop的 Java API
- java反序列化利用工具
- java利用poi读取Excel文件
- javaweb之Filter详解
- Java读取文件加锁代码Demo(利用Java的NIO)
- java filter servlet listener
- Oracle12c--利用Java调用子程序(四十六)