zoukankan      html  css  js  c++  java
  • Java遍历文件夹的2种方法

    A.不使用递归:

    import java.io.File;import java.util.LinkedList;public class FileSystem {    public static void main(String[] args) {                long a = System.currentTimeMillis();                LinkedList list = new LinkedList();        File dir = new File("c:\\java\\");        File file[] = dir.listFiles();        for (int i = 0; i < file.length; i++) {            if (file[i].isDirectory())                list.add(file[i]);            else                System.out.println(file[i].getAbsolutePath());        }        File tmp;        while (!list.isEmpty()) {            tmp = list.removeFirst();            if (tmp.isDirectory()) {                file = tmp.listFiles();                if (file == null)                    continue;                for (int i = 0; i < file.length; 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);    }}                      
     

    B.使用递归:

           import java.io.File;import java.util.ArrayList;public class FileSystem1 {    private static ArrayList filelist = new ArrayList();         public static void main(String[] args) {                long a = System.currentTimeMillis();        refreshFileList("c:\\java");        System.out.println(System.currentTimeMillis() - a);    }    public static void refreshFileList(String strPath) {         File dir = new File(strPath);         File[] files = dir.listFiles();                 if (files == null)             return;         for (int i = 0; i < files.length; i++) {             if (files[i].isDirectory()) {                 refreshFileList(files[i].getAbsolutePath());             } else {                 String strFileName = files[i].getAbsolutePath().toLowerCase();                System.out.println("---"+strFileName);                filelist.add(files[i].getAbsolutePath());                                }         }     }}
    结论:经过测试,使用递归的方法B性能相对好一些。
  • 相关阅读:
    ruilei.cnblogs 访问量突破20万
    VSTS2008 Load Test Agent
    失落的星球 Lost Planet 秘籍
    C#去除特殊字符串
    Linq Coding Part Nine(IEnumerable、IQueryable、Set)
    Web Services Software Factory tutorial (1 of 5)
    迅雷新闻快讯区JS代码剖析
    Interfaces Topic
    前台如何调用后台事件
    [关注]个税起征点8000元什么时候到来?
  • 原文地址:https://www.cnblogs.com/chen1987lei/p/1867675.html
Copyright © 2011-2022 走看看