键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/*
* 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,
用个数作为value,放入到map集合中,并用两种方式遍历map集合
例如:
doc 的类型的文件有 3 个
java 的类型的文件有 5 个
txt 的类型的文件有 7 个
*/
public class text {
public static Map<String,Integer> map;
public static Integer txtNum;
public static Integer javaNum;
public static Integer docNum;
public static void main(String[] args) {
function();
getPath();
printMap();
}
/*
* 初始化数据
*/
public static void function() {
map=new HashMap<String, Integer>();
txtNum=0;
javaNum=0;
docNum=0;
map.put("java", javaNum);
map.put("doc", docNum);
map.put("txt", txtNum);
}
/*
* 输入文件夹路径
*/
public static void getPath() {
Scanner scan=new Scanner(System.in);
while(true) {
System.out.println("请输入文件路径:");
String path=scan.nextLine();
File file=new File(path);
if(! file.exists()) {
System.out.println("文件夹不存在!");
continue;
}else {
saveMap(file);
System.out.println("存储完成!");
break;
}
}
}
/*
* 判断文件类型
*/
public static void saveMap(File file) {
File[] fileArr=file.listFiles();
for(int i=0;i<fileArr.length;i++) {
if(fileArr[i].isDirectory()) {
saveMap(fileArr[i]);
}
if(fileArr[i].getAbsolutePath().endsWith("txt")) {
txtNum+=1;
map.put("txt", txtNum);
}
if(fileArr[i].getAbsolutePath().endsWith("java")) {
javaNum+=1;
map.put("java", javaNum);
}
if(fileArr[i].getAbsolutePath().endsWith("doc")) {
docNum+=1;
map.put("doc", docNum);
}
}
}
/*
* 输出文件个数
*/
public static void printMap() {
Set<String> set=map.keySet();
Iterator<String> it=set.iterator();
while(it.hasNext()) {
String s=it.next();
System.out.println(s+"类型的文件个数有:"+map.get(s));
}
}
}
键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合的更多相关文章
- Python扫描指定文件夹下(包含子文件夹)的文件
扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...
- C++ MFC 操作文件夹及属性(新建,删除[包含子文件[夹]],剪切,复制,重命名)
源文件:http://pan.baidu.com/s/169HCL 运行mfc缺失的动态连接库:http://pan.baidu.com/s/17pGlT 截图: 不足之处仅供参考,哈哈.
- python批量删除子文件夹中的空子文件夹
例如A文件夹下有许多子文件夹,我需要获得的是子文件夹中的图片,但是现在子文件夹中不光有图片,还混入了空的文件夹(在使用OpenImages工具箱的时候,按照检索的方式下载的图片文件中是带有label的 ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流
package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...
- java实现文件夹(包括其中的子文件夹、子文件)的复制——递归
这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: package com.simon.m ...
- Java 遍历指定文件夹及子文件夹下的文件
Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...
- GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?
问题背景: 最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目 因为之前规划的原因,原来的四个项目是分两个解决方案来管理的 ...
- 代码实现:键盘录入一个int类型的整数,对其求二进制表现形式
package com.loaderman.test; import java.math.BigDecimal; import java.math.BigInteger; import java.ut ...
随机推荐
- CleanAop使用笔记
前言,本(ˇˍˇ) 想用PostSharp做case,但是破解不成功,所以在github里找了一个CleanAop 地址: https://github.com/Jarvin-Guan/CleanAO ...
- 如何在 Fiddler Script 中 自定义 修改 Request 、 Response
Fiddler是一个http协议调试代理工具,方便进行http请求的拦截处理.改写请求.返回值等. 在Rules菜单下: 此次更改请求 头 ,so go to OnBeforeRequest 或者 ...
- 浅谈一下Windows下的用户权限
大学毕业后,选择做了苹果开发,一直是使用的Mac系统,所以对Windows的基本操作忘得几乎一干二净:因为做内网穿透的需要,要用到Windows下的权限问题,所以重新研究了一下Windows设置用户权 ...
- git log --pretty=format:" "
控制显示的记录格式,常用的格式占位符写法及其代表的意义如下: 选项 说明%H 提交对象(commit)的完整哈希字串%h 提交对象的简短哈希字串%T 树对象(tree)的完整哈希字串% ...
- 数据库更新锁WITH UPDLOCK
今天因为并发的问题,又讨论了一遍.之前以为同时两个线程开启,线程A加了更新锁,线程B没有加,线程A更新后,线程B也会继续下去代码.但是今天测试了一下,原来线程A更新后(解锁),线程B将不会继续,会出现 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- grafana安装和配置(centos7上配置)
author: headsen chen date: 2019-03-29 10:33:19 1,安装: yum install https://s3-us-west-2.amazonaws. ...
- 搭建Keil C51开发环境
安装Keil 首先需要获取Keil的安装程序,然后双击开始安装.安装过程非常简单,基本都是一路next.具体步骤如下图: 注册 如果不注册,会有许多功能限制,例如限制生成的代码的大小.为了学习和和教学 ...
- 1.4 flask request和session
2019-1-4 18:13:57 越努力,越幸运! 还有121天,flask讲完,还有4天,总时长130天 还有13天就讲完了 一月争取看完!!! 永远不要高估自己! 今天学了request和ses ...
- Spring boot Mybatis 整合(完整版)
个人开源项目 springboot+mybatis+thymeleaf+docker构建的个人站点开源项目(集成了个人主页.个人作品.个人博客) 朋友自制的springboot接口文档组件swagge ...