自定义java文件过滤器与文件的深度搜索
2014-08-26 08:29
351 查看
当我们在需要在硬盘中寻找文件时市场需要深度搜索,并且要使用到过滤器,虽然在有FilenameFilter接口,里面有accept(),只要实现根据实际要求实现相应的代码, 即可完成完成文件的过滤,今天我们自定义一个过滤器: <pre name="code" class="java"> package com.ye; import java.io.File; import java.util.ArrayList; public class MyFileFilter{ /** * 文件过滤器 * @author kry * @param s * @param fatherPath * @return String[] */ //传入两个参数,运用list()的到的集合S 和传入的路径fatherPath public String[] fileFilter(String[] s,String fatherPath){ File file = null; //定义一个list,用于存储符合要求的文件名(s中的元素) ArrayList<String> list = new ArrayList<String>(); for(int i=0;i<s.length;i++){ file = new File(fatherPath+"\\"+s[i]); if(file.isDirectory()) {//如果是文件夹则执行如下操作 //运用递归的思想调用本方法 String[] min = fileFilter(file.list(),fatherPath+"\\"+s[i]); for(int j =0;j<min.length;j++) { System.out.println(min[j]); } }else { if(s[i].endsWith(".java")){ list.add(s[i]); } } } //将list的元素复制到字符串数组str中 String[] str = new String[list.size()]; for(int i =0;i<list.size();i++) { str[i] = list.get(i); } //返回符合要求的数组 return str; } } 在定义一个JavaFinds类: <pre name="code" class="java"> package com.ye; import java.io.File; import java.io.FilenameFilter; public class JavaFinds { public static void main(String[] args) { if(args.length!=1) { System.out.println("请输入正确的路径:"); System.exit(0); } String dir = args[0]; File file = new File(dir); String[] str = file.list(); String[] newStr = new MyFileFilter().fileFilter(str,dir); for(int i = 0;i<newStr.length;i++) { System.out.println(newStr[i]); } } }
相关文章推荐
- java学习笔记(2):获取文件名和自定义文件过滤器
- JAVA中自定义日志输出格式及自定义文件处理器的实现
- java--FilenameFilter文件过滤器
- java 保存文件对话框的使用以及文件过滤器(FileDialog、JFileChooser)
- 【protocol buffers】java解析protoBuf custom option自定义扩展文件具体方法
- java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)
- 一个使用自定义命名空间的Schema文件,xml文件和castor生成的java代码的例子
- 在FTL文件中使用自定义的Java方法
- Java自定义日志输出文件
- 文件结束[置顶] javaweb框架--自定义标签与freemaker结合
- 【Java多线程】写入同一文件,自定义线程池与线程回收利用2
- java--FilenameFilter文件过滤器
- java文件过滤器(File类listFiles方法可选参数)--获取目录下指定的某类文件
- Java Web开发中,自定义过滤器被执行两次的原因分析及解决办法
- Java自定义日志输出文件
- 【基础篇】java中输入输出的总括——文件过滤器
- JAVA和C实现文件搜索(递归和文件过滤器)
- JNI实例3---扫描SD卡中mp3文件,native层调用Java自定义的类
- MyEclipse自定义Java文件语法颜色。 java Syntax Coloring
- Java基础22--IO--文件过滤器