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

      本文由广州疯狂软件java培训分享:

      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性能相对好一些。

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 相关阅读:
    HDU 1242——Rescue(优先队列)
    [LeetCode] Rectangle Area
    iOS 开发百问(6)
    lucene入门查询索引——(三)
    lucene入门创建索引——(二)
    lucene简介——(一)
    Java基础打包以及批处理命令运行
    Maven从私服上下载所需jar包——(十四)
    Maven部署dao工程到私服上——(十三)
    Maven私服安装及配置——(十二)
  • 原文地址:https://www.cnblogs.com/gojava/p/3685854.html
Copyright © 2011-2022 走看看