public class FileDemo3 {
public static void main(String[] args) {
File file = new File("E:\\demo");
HashMap<String, Integer> map = new HashMap<String, Integer>();
bianLi(file, map);
Set<String> set = map.keySet();
Iterator<String> itKey = set.iterator();
while(itKey.hasNext()) {
String key = itKey.next();
Integer value = map.get(key);
System.out.println(key + "类型的文件有: " + value + "个");
}
System.out.println("====================");
Set<Map.Entry<String, Integer>> entry = map.entrySet();
Iterator<Map.Entry<String, Integer>> entryIt = entry.iterator();
while(entryIt.hasNext()) {
Map.Entry<String, Integer> entry1 = entryIt.next();
System.out.println(entry1.getKey() + "类型的文件有: " +entry1.getValue() + "个");
}
}
/*
* 定义方法,遍历抽象路径,并将文件后缀名存入Map集合中
* 并对Map集合进行遍历输出
*/
public static void bianLi(File file,HashMap<String, Integer> map){
File[] fileArr = file.listFiles();
for(File f : fileArr) {
if(f.isDirectory()) {
bianLi(f,map);
}else {
int index = f.getName().lastIndexOf(".");
String suffix = f.getName().substring(index + 1);
if(map.containsKey(suffix)) {
map.put(suffix, map.get(suffix) + 1);
}else {
map.put(suffix, 1);
}
}
}
}
}
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
最新推荐文章于 2020-05-01 11:23:13 发布