实例:Java遍历文件夹

  作者:bea

Java遍历文件夹有2中方法:一种是递归遍历;另一种是非递归遍历。这2中方法还是都熟悉一下的好。下面我们分别用Java递归和非递归来实现遍历文件夹。 测试结论:使用递归遍历文件夹的性能要高。建议大家重点实践下。 一、使用Java递归遍历文件夹 importjava.io.File; importjava.util.ArrayList; publicclassFileSystem1{ privatestaticArrayListfilelist
Java遍历文件夹有2中方法:一种是递归遍历;另一种是非递归遍历。这2中方法还是都熟悉一下的好。下面我们分别用Java递归和非递归来实现遍历文件夹。

测试结论:使用递归遍历文件夹的性能要高。建议大家重点实践下。

一、使用Java递归遍历文件夹

importjava.io.File;
importjava.util.ArrayList; publicclassFileSystem1{ privatestaticArrayListfilelist=newArrayList(); publicstaticvoidmain(String[]args){ longa=System.currentTimeMillis();
refreshFileList("c:\\java"); System.out.println(System.currentTimeMillis()-a); } publicstaticvoidrefreshFileList(StringstrPath){ Filedir=newFile(strPath); File[]files=dir.listFiles(); if(files==null) return; for(inti=0;i if(files[i].isDirectory()){ refreshFileList(files[i].getAbsolutePath()); }else{ StringstrFileName=files[i].getAbsolutePath().toLowerCase(); System.out.println("---"+strFileName); filelist.add(files[i].getAbsolutePath()); } } } }


二、使用Java非递归遍历文件夹

importjava.io.File;
importjava.util.LinkedList; publicclassFileSystem{
publicstaticvoidmain(String[]args){ longa=System.currentTimeMillis(); LinkedListlist=newLinkedList(); Filedir=newFile("c:\\java\\"); Filefile[]=dir.listFiles(); for(inti=0;i if(file[i].isDirectory()) list.add(file[i]); else System.out.println(file[i].getAbsolutePath()); } Filetmp; while(!list.isEmpty()){ tmp=list.removeFirst(); if(tmp.isDirectory()){ file=tmp.listFiles(); if(file==null) continue; for(inti=0;i if(file[i].isDirectory()) list.add(file[i]); else System.out.println(file[i].getAbsolutePath()); } }else{ System.out.println(tmp.getAbsolutePath()); } } System.out.println(System.currentTimeMillis()-a); } }

有用  |  无用

猜你喜欢