java实现pc机上文件的查找

2019-04-13 21:38发布

文件查找可以说是一个常用操作,下面来介绍一下文件查找的思路。 1.文件名的匹配,需要用到Pattern类和Matcher对象来完成正则表达式的匹配。 2.文件的树状层次结构需要用递归算法来查找。 3.文件的输出结果需要用文件输出流输出到硬盘的一个文件上。 1.Pattern类和Matcher对象的使用 如果使用了第版本的eclipse,可能无法找到Pattern类的complie方法,如下:
原因是eclipse的版本太低!打开eclipse安装目录下的readme文件,当前版本是: 换了个高版本的eclipse可以解决问题。 关于正则表达式,读者可以查找相关的文档,在此不再赘述。 项目中要匹配某文件结尾的几个字符,因此正则表达式可以这样写:Pattern pattern = Pattern.compile("^*.mp3$",Pattern.CASE_INSENSITIVE); compile的第一个参数填写正则表达式,^*.mp3$是以.mp3结尾的意思,如果需要查找多种文件类型,可以用 | 符号隔开(如:“A|B”是即满足A又满足B的意思);第二个参数填写匹配的一些规则,CASE_INSENSITIVE的意思是不区分大小写。 2.递归调用遍历整个文件 public static void findFiles(String string){
File file = new File(string);
if(file.isFile()){//叶节点
输出文件
}

否则读取文件夹中的每个文件,并对每个文件进行findFiles操作。
}
3.文件的输出流操作 第一步:新建一个文件 File file = new File("H:/newfile.txt");读者可以根据自己计算机上的分盘情况自行更改 第二步:新建一个指向该文件的文件输出流 fop = new FileOutputStream(file); 第三步:对文件流进行读和刷新操作    fop.write(inBytes);
   fop.flush();
第四步:关闭文件流   fop.close();      对于文件流的创建和关闭操作需要添加响应的异常处理。 还有一点要主要,如果要输出换行符,须在string后面加上“/r/n”(回车换行)! 好了,所有的步骤都介绍完,下面是完整的代码: package pattern; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; public class hello { static FileOutputStream fop=null; public static void main(String[] args) { File xx=new File("D:"); try { File file = new File("H:/newfile.txt"); fop = new FileOutputStream(file); } catch (Exception e) { System.out.println("打开文件出错!"); } String [] gg=xx.list(); for(int i=0;i