zoukankan      html  css  js  c++  java
  • 【Java】统计一个目录下,所有的类型及不同类型的个数

    方法一:

     1 package pers.stresm;
     2 
     3 import java.io.File;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 
     7 /**
     8  *     统计一个目录下,所有的类型及不同类型的个数 E:webjavascript 
     9  *     方法(一)
    10  * @author three
    11  *
    12  */
    13 public class AllFilesInfo2 {
    14 
    15     static Map<String, Integer> map = new HashMap<>();
    16 
    17     public static void show(File dir) {
    18         for (File ff : dir.listFiles()) {
    19             if (ff.isDirectory()) {
    20                 show(ff);
    21             } else if (ff.isFile()) {
    22                 String n = ff.getName();
    23                 int pos = n.lastIndexOf(".");
    24                 String ext = pos == -1 ? "未知     " : "." + n.substring(pos + 1);
    25                 if (map.containsKey(ext)) {
    26                     map.put(ext, map.get(ext) + 1);
    27                 } else {
    28                     map.put(ext, 1);
    29                 }
    30 
    31             }
    32         }
    33     }
    34 
    35     public static void main(String[] args) {
    36         show(new File("E:\web\javascript"));
    37         map.forEach((k, v) -> {
    38             System.out.printf("%-6s=%d
    ", k, v);
    39         });
    40     }
    41 
    42 }

    方法二:

     1 package pers.stresm;
     2 
     3 import java.io.File;
     4 import java.util.HashSet;
     5 import java.util.Set;
     6 
     7 /**
     8  * 统计一个目录下,所有的类型及不同类型的个数 E:webjavascript
     9  * 方法(二)
    10  * @author three
    11  *
    12  */
    13 public class AllFilesInfo {
    14 
    15     static Set<String> setExt = new HashSet<>();
    16     static int num = 0;
    17     
    18     /**
    19      *     获取当前目录下的所有后缀名
    20      * @param f
    21      */
    22     public static void getExt(File dir) {
    23         for(File e : dir.listFiles()) {
    24             if(e.isDirectory()) {
    25                 getExt(e);
    26             }else {
    27                 //将获取的后缀名存入set集合
    28                 setExt.add("."+e.getName().substring(e.getName().lastIndexOf(".")+1));
    29             }
    30         }
    31     }
    32     
    33     /**
    34      *     获得后缀名对应的数量
    35      * @param f
    36      * @param suffix
    37      */
    38     public static void extCount(File file,String ext) {
    39         for(File e : file.listFiles()) {
    40             if(e.isDirectory()) {
    41                 extCount(e,ext);
    42             }else if(e.getName().endsWith(ext)) {
    43                 ++num;
    44             }
    45         }
    46     }
    47     
    48     public static void main(String[] args) {
    49         File file = new File("E:\web\javascript");    //需要统计的目录路径
    50         
    51         getExt(file);    //获取后缀名集合
    52         
    53         String str = "";
    54         
    55         for(String e : setExt) {    //遍历每一个后缀
    56             str = String.format("%8s = ", e);    //格式化
    57             System.out.print(str);
    58             
    59             num = 0;
    60             
    61             extCount(file,e);    //统计后缀名数量
    62             System.out.println(num);
    63         }
    64     }
    65 }
  • 相关阅读:
    MacOs 与 Windows 用U盘交换文件
    Tutorial install and use AppImage on Ubuntu 20.10
    How to set FullScreen Mode on MacOS
    Github Fork 之后与源仓库保持同步
    Mac键盘实现Home, End, Page UP, Page DOWN这几个键
    在 Laravel 的数据库模型中使用状态模式
    利用 Linux col 命令过滤手册文档中的控制符
    深入理解 __init__.py 文件在 python3 和 python2 下的不同
    python配置文件INI/TOML/YAML/ENV的区别
    IPython TAB 代码补全问题
  • 原文地址:https://www.cnblogs.com/netyts/p/13751753.html
Copyright © 2011-2022 走看看