public class Demo5 {
public static void main(String[] args) {
System.out.println("输入路径");
File file=new File(new Scanner(System.in).next());
Map<String,Integer> map=new HashMap<String, Integer>();
getFileKindAndNumberIntoMap(map,file);
System.out.println(map);
}
/*
* 5.键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,
* 注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,
用个数作为value,放入到map集合中,并用两种方式遍历map集合
例如:
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
txt 的类型的文件有 7 个
*/
public static void getFileKindAndNumberIntoMap(Map<String,Integer> map,File file){
File[] fileArr=file.listFiles();
for (File f : fileArr) {
if(f.isDirectory() && !f.isHidden()){
getFileKindAndNumberIntoMap(map,f);
}else{
String s=f.getName().toString();
String[] sArr=s.split("\\.");
s=sArr[sArr.length-1];
if(!map.containsKey(s)){
map.put(s, 1);
}else{
map.put(s, 1+map.get(s));
}
}
}
}
} |
|