File类的文件类型数量统计

需求:
/*
 * 输入一个文件夹路径 用map记录文件类型出现的次数
 * 
 * txt 数量
 * java 数量
 * png  数量
 * ....
 */
import java.io.File;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Set;
public class Kll {
    public static void main(String[] args) {
        // 创建map对象
        HashMap<String, Integer> map = new HashMap<>();
        // 创建文件对象
        File file = new File("/Users/lanou/Desktop/Test");
        getMap(file, map);
        System.out.println(map);
    }

    // 获取类型并装入集合的方法
    public static void getMap(File file, HashMap<String, Integer> map) {
        // 获取给出目录下的一级目录文件
        File[] files = file.listFiles();
        // 遍历文件数组
        for (File subFile : files) {
            // 判断
            if (subFile.isFile()) {
                // 是文件
                // 获取名字并按点切割
                String[] split = subFile.getName().split("\\.");
                // 最后一个元素是文件类型,也是map的key值
                String key = split[split.length - 1];
                // 判断文件类型是否包含在map中
                if (map.containsKey(key)) {
                    // 包含时,取出加一
                    Integer value = map.get(key);
                    value++;
                    // 再放回map中
                    map.put(key, value);
                }else {
                    // 不包含时,放入
                    map.put(key, 1);
                }
            }else {
                // 是文件夹,递归调用
                getMap(subFile, map);
            }
        }
    }

}

运行结果:这里写图片描述

猜你喜欢

转载自blog.csdn.net/KongLingLei_08225/article/details/82667415