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集合的更多相关文章

  1. Python扫描指定文件夹下(包含子文件夹)的文件

    扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...

  2. C++ MFC 操作文件夹及属性(新建,删除[包含子文件[夹]],剪切,复制,重命名)

    源文件:http://pan.baidu.com/s/169HCL 运行mfc缺失的动态连接库:http://pan.baidu.com/s/17pGlT 截图: 不足之处仅供参考,哈哈.

  3. python批量删除子文件夹中的空子文件夹

    例如A文件夹下有许多子文件夹,我需要获得的是子文件夹中的图片,但是现在子文件夹中不光有图片,还混入了空的文件夹(在使用OpenImages工具箱的时候,按照检索的方式下载的图片文件中是带有label的 ...

  4. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  5. java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流

    package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...

  6. java实现文件夹(包括其中的子文件夹、子文件)的复制——递归

    这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: package com.simon.m ...

  7. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  8. GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?

    问题背景:     最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目     因为之前规划的原因,原来的四个项目是分两个解决方案来管理的 ...

  9. 代码实现:键盘录入一个int类型的整数,对其求二进制表现形式

    package com.loaderman.test; import java.math.BigDecimal; import java.math.BigInteger; import java.ut ...

随机推荐

  1. 高仿QQ、微信效果的图片浏览器(支持原图和缩略图、多种手势、CocoaPods)

    感谢原文作者的分享 本文转载至 http://my.oschina.net/u/2406027/blog/735738 PYPhotoBrowser GitHub地址:https://github.c ...

  2. 最强Android书 架构大剖析 作者网站

    http://newandroidbook.com/    jonathan levin   (最强Android书 架构大剖析) http://newandroidbook.com/AIvI-M-R ...

  3. git error: Your local changes to the following files would be overwritten by merge:xxxxxx ,Please commit your changes or stash them before you merge.的phpstorm解决办法

    git报错 error: Your local changes to the following files would be overwritten by merge: .idea/encoding ...

  4. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

  5. windows服务器的误解

    自以为服务器就一种 配置,mac,windows服务器 目的:mac希望连接windows服务器,并替换打包的项目文件, 误区,使用ssh 最后明白了 直到看到一句话 阿里云ECS的安全组默认只放行2 ...

  6. 遍历文件,读取.wxss文件,在头部添加一条注释

    change.pl #!/usr/bin/perl use autodie; use utf8; use Encode qw(decode encode); use v5.26; my $path = ...

  7. oracle 存储过程分页

    将分页的存储过程封装到包中,包规范 create or replace package pkg_query as type cur_query is ref cursor; PROCEDURE prc ...

  8. 【登录异常解决】Ubuntu 输入正确的密码后重新返回到登陆界面

    症状 Ubuntu 输入正确的密码后,黑屏一闪,重新返回到登陆界面. 原因一:主目录下的.Xauthority文件拥有者变成了root,从而以用户登陆的时候无法都取.Xauthority文件.说明:X ...

  9. 补充:javascript

    写法分类:1.行内(内联)写在标签里面,以属性的形式表现,属性名是事件属性名例如:<button onClick="js代码"></button>2.内嵌写 ...

  10. Oracle课程档案,第一天。

    sys是Oracle最高权限者 DBSNMP:简单网络管理系统 ctrl+d回到oracle目录 在SQL中输入 exit也可以 select:列 where:行 sqlplus / as sysdb ...