• 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
  • 相关阅读:
    1:4 UI标签和通用标签
    1:3访问 servlet API 的两种方式(request,session等内置对象)
    1 :2 Strust2—Demo
    1:1 Struts2概述
    mysql索引原理与慢查询优化1
    mysql流程控制
    mysql函数
    mysql存储过程
    mysql事务
    mysql触发器
  • 原文地址:https://www.cnblogs.com/XDJjy/p/4435909.html
Copyright © 2020-2023  润新知