• File类遍历目录


    1,将遍历的目录保存至List并输出

    View Code
     1 package com.study.FileDemo;
    2
    3 import java.io.File;
    4 import java.io.FileNotFoundException;
    5 import java.io.FileOutputStream;
    6 import java.io.PrintStream;
    7 import java.util.ArrayList;
    8 import java.util.List;
    9 /**
    10 *
    11 * 遍历目录输出至文件
    12 *
    13 */
    14 public class ListFileDemo01 {
    15
    16 public static void main(String[] args) {
    17 List<String> lst = ListFileTest(new File("d:" + File.separator));
    18 PrintStream ps = null;
    19 try {
    20 ps = new PrintStream(new FileOutputStream(new File("e:"
    21 + File.separator + "fadfafa223.txt")));
    22 } catch (FileNotFoundException e) {
    23 e.printStackTrace();
    24 }
    25 for (String s : lst) {
    26 ps.println(s);
    27 }
    28
    29 }
    30
    31 public static List<String> ListFileTest(File file) {
    32 File[] f = file.listFiles();
    33 List<String> list = new ArrayList<String>();
    34 if (f != null) {
    35 for (int i = 0; i < f.length; i++) {
    36 if (f[i].isDirectory()) {
    37 list.addAll(ListFileTest(f[i]));//这句很关键
    38 } else {
    39 list.add(f[i].getPath());
    40 }
    41 }
    42 }
    43 return list;
    44
    45 }
    46 }

    2,将遍历的目录树状显示

    import java.io.File;

    public class ListTest03 {

    public static void main(String[] args) {
    listFile("d:\\DG343Std_x86", 1);

    }

    public static void listFile(String dir, int level) {
    File f = new File(dir);
    for (int i = 0; i <= level; i++) {
    System.out.print("| ");
    }
    System.out.println("|-" + f.getName());
    if (f.isDirectory()) {
    File fs[] = f.listFiles();
    for (File s : fs) {
    listFile(s.getPath(), level + 1);
    }
    }
    }

    }




  • 相关阅读:
    线程池源码解析
    String与常量池
    spring循环依赖
    ConcurrentHashMap源码解析(JDK8)
    原子类源码分析
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于json
    Lifecycle of jsf
  • 原文地址:https://www.cnblogs.com/xiongyu/p/2245728.html
Copyright © 2020-2023  润新知