一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java文件操作之按行讀取文件和遍歷目錄的方法

Java文件操作之按行讀取文件和遍歷目錄的方法

2020-04-09 14:56mafuli007 JAVA教程

這篇文章主要介紹了Java文件操作之按行讀取文件和遞歸遍歷目錄的方法,遍歷目錄文中分別舉了遞歸和非遞歸的例子,需要的朋友可以參考下

按行讀取文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package test;
 
import java.io.*;
import java.util.*;
 
public class ReadTest {
 
  public static List<String> first_list;
  public static List<String> second_list;
 
  public ReadTest() {
    first_list = new LinkedList<>();
    second_list = new LinkedList<>();
  }
 
  public static void ReadFile() {
    final String filename = "d://aa.txt";
    String str = null;
    int i = 0;
    try {
      LineNumberReader reader = null;
      reader = new LineNumberReader(new FileReader(filename));
      while ((str = reader.readLine()) != null) {
        if (!str.isEmpty()) {
          String values[] = str.split("  ");
          first_list.add(values[0]);
          second_list.add(values[1]);
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  public static void main(String args[]) {
 
    ReadTest reader = new ReadTest();
    reader.ReadFile();
 
    for (int i = 0; i < first_list.size(); i++) {
      System.out.println(first_list.get(i) + ":" + second_list.get(i));
    }
  }
}

遞歸遍歷目錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class ListFiles{
  public static ArrayList filelist = new ArrayList();
   
  public static void listfiles(String dir){  
    File file = new File(dir);
    File[] files = file.listFiles();
    if(null == files){
      return;
    }
    for(int i = 0; i < files.length; i++){
      if(files[i].isDirectory())
      {
        listfiles(files[i].getAbsolutePath());
      }
      else{
        System.out.println(files[i]);
        filelist.add(files[i]);
      }
    }
  }
}

上面遍歷目錄是一種遞歸的方法,我們再來看一下非遞歸的實現:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//非遞歸
  public static void scanDirNoRecursion(String path){
   LinkedList list = new LinkedList();
    File dir = new File(path);
    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());
        num++;
      }
    }
    File tmp;
    while (!list.isEmpty()) {
      tmp = (File)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]);
            num++;
          }
        }
      } else {
        System.out.println(tmp);
        num++;
      }
    }
  }

我們可以寫一個類來簡單測試一下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.io.File;
import java.util.LinkedList;
public class FileSystem {
 
 public static int num;
 
  public static void main(String[] args) {
    
    long a = System.currentTimeMillis();
    //String path="c:";
    num=0;
    String[] lists={"c:","d:"};
    /*
    for(int i=0;i<lists.length;i++){
     File file=new File(lists[i]);
     scanDirRecursion(file);
    */
    for(int i=0;i<lists.length;i++){
      scanDirNoRecursion(lists[i]);
    }
    
    System.out.print("文件總數:"+num);
    System.out.print("總耗時:");
    System.out.println(System.currentTimeMillis() - a);
  }

測試結果:
遞歸:
文件總數:189497  總耗時:39328
非遞歸:
文件總數:189432 總耗時:37469
這里非遞歸相對要好~

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久黄色片 | 国产免费小视频在线观看 | 午夜神器18以下不能进免费 | 秋霞理论最新三级理论最 | 555www成人网| 欧美日韩一区二区综合 | 色噜噜 男人的天堂在线观看 | 高清不卡日本v在线二区 | 免费在线观看伦理片 | 99久久精品无码一区二区毛片 | 免费观看无人区完整版 | 私人黄色| 久久久GOGO无码啪啪艺术 | 欧美色精品天天在线观看视频 | 高跟翘臀老师后进式视频 | 免费在线观看成年人视频 | 美女扒开腿让男生捅 | 亚洲天堂网站在线 | 亚洲高清中文字幕精品不卡 | 国产99久久久国产精品成人 | 99热久久这里只精品国产www | 性刺激欧美三级在线现看中文 | 男人疯狂进女人下部视频动漫 | 手机av | 深夜a| 欧美久久天天综合香蕉伊 | 倩女还魂在线观看完整版免费 | 国产精品亚洲精品日韩已方 | 亚洲国产精品综合久久网络 | 华人在线京东热 | 色欲都市| 99精品影视 | 男女污网站 | 亚洲123区 | 欧美日韩在线一区 | 天堂在线中文无弹窗全文阅读 | 91九色丨porny丨制服 | 大学生宿舍飞机 free | 波多在线 | 亚洲免费一 | 五月色综合婷婷综合俺来也 |