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
  • 相关阅读:
    HDU6393(LCA + RMQ + 树状数组) n边图,两点最短距离 , 修改边权
    POJ 2763 (LCA +RMQ+树状数组 || 树链部分) 查询两点距离+修改边权
    HDU6396 (贪心+fread 挂)
    使用hadoop自带的例子作测试 笔记三
    hadoop的布暑方式 笔记二
    1 Hadoop原理介绍 笔记一
    ssh+flex
    openssh升级过程
    redhat5yum源配置
    struts2实现权限拦截
  • 原文地址:https://www.cnblogs.com/XDJjy/p/4435909.html
Copyright © 2011-2022 走看看