黑马程序员技术交流社区
标题:
求解答
[打印本页]
作者:
墨晓生
时间:
2016-9-9 22:07
标题:
求解答
.键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,
用个数作为value,放入到map集合中,并用两种方式遍历map集合
例如:
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
txt 的类型的文件有 7 个
作者:
墨晓生
时间:
2016-9-11 19:00
public class Demo {
static HashMap<String, Integer> hm = new HashMap<>();
public static void main(String[] args) {
File dir = getDir();
getDirCount(dir);
for (String key : hm.keySet()) {
System.out.println(key + " 的类型的文件有 " + hm.get(key) + " 个");
}
}public static File getDir() {
System.out.println("输入一个文件夹路径");
String line = new Scanner(System.in).nextLine();
while (true) {
File dir = new File(line);
if (!dir.isDirectory()) {
System.out.println("不正确,重新输入");
} else {
return dir;
}
}
}
public static void getDirCount(File dir) {
File[] subFiles = dir.listFiles();
for (File subFile : subFiles) {
if (subFile.isFile()) {
String name = subFile.getName();
String ext = name.substring(name.lastIndexOf(".") + 1);
hm.put(ext, hm.containsKey(ext) ? hm.get(ext) + 1 : 1);
} else {
getDirCount(subFile);
}
}
}
}
作者:
liyong2267576
时间:
2016-9-11 19:59
不懂
作者:
double_x
时间:
2016-9-11 21:13
so 你这是求解答什么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2