zoukankan      html  css  js  c++  java
  • 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性能相对好一些。 


    文件夹操作
    http://www.cnblogs.com/springcsc/archive/2009/12/03/1616367.html
  • 相关阅读:
    在Preview中查看man手册
    SVN add file without checkout
    短网址的实现思路
    HTTP 301 与302对于搜索引擎的影响
    解决bitdefender与TortoiseSVN冲突
    在mac中修改主机名
    升级mac os上的maven2至maven3
    访问youtube HTML5测试版本的方法
    Lambda
    107名单。。。
  • 原文地址:https://www.cnblogs.com/XDJjy/p/4435909.html
Copyright © 2011-2022 走看看