键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,用个数作为value,放入到map集合中,并用两种方式遍历map集合
例如:
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
例如:
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
txt 的类型的文件有 7 个
public static void main(String[] args) {
File dir = new File("F:\\fromFile");
HashMap<String, Integer> map = new HashMap<>();
map = sum(dir,map);
bianli(map);
}
private static void bianli(HashMap<String, Integer> map) {
Set<String> set = map.keySet();
for(String s :set){
System.out.println(s+"类型有"+map.get(s));
}
}
private static HashMap<String, Integer> sum(File dir, HashMap<String, Integer> map) {
File[] files = dir.listFiles();
Set<String> set = map.keySet();
for(File f : files){
if(f.isDirectory()){
sum(f,map);
}else{
System.out.println(f);
String key = f.getName().substring(f.getName().indexOf(".")+1);
if(set.contains(key)){
map.put(key, map.get(key)+1);
}else{
map.put(key, 1);
}
}
}
return map;
}