键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"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));
}
}

}

原文地址:https://www.cnblogs.com/zhilili/p/10670501.html

时间: 2024-10-23 21:41:43

键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合的相关文章

获取列表中某一个文件夹下的列表项集合(不包含子文件夹对象,也不包含子文件夹中的列表项)

RT,方法如下: 1 SPListItemCollection GetSubItemsWithoutFoldersInParrentFolder(SPFolder parrent) 2 { 3 SPList list = parrent.Item.ParentList; 4 SPQuery query = new SPQuery(); 5 query.Folder = parrent; 6 query.Query = "<Where><Eq><FieldRef Na

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

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

Java与Python统计文件夹及子文件夹下文件个数

package dang; import java.io.File; /** * @ClassName: FileCount * @Description: TODO() * @author: dangjinhu * @date: 2018年11月1日 下午2:24:58 */ public class FileCount { public static void main(String[] args) { int[] array = new int[]{0,0}; print(new File

JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件

package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要显示文件目录的层级 * 注:运用了递归的算法. */ public class FileDemo3 { public static void main(String[] args) { File dir=new File("F:\\黑马学习日程\\"); //File dir=new Fi

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

题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在"D:\java"文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar

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

package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintStream; /*从键盘输入一个文件夹路径,利用打印流将该文件夹下的所有文件(包括子文件夹)复制到D盘下temp文件夹下.*/ public class PrintAllT

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

这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: 1 package com.simon.myfinal; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.InputStream; 7 8 /** 9 * Crea

Java中新建子文件夹和新建文件

File file = new File("地址"); file.mkdirs(); //新建文件夹,当没有父文件夹时,但是不会自动创建父文件夹 file.mkdirs(); //新建文件夹,当没有父文件夹时,但是会创建父文件夹, //如果文件不存在,则创建一个新文件if(!file.isFile()){    file.createNewFile();} Java中新建子文件夹和新建文件

matlab 把一个文件夹下的所有图片(可以包含在子文件夹下)考到指定文件夹下

clc;clear all; maindir = 'C:\Users\wang\Desktop\iLIDS-VID\i-LIDS-VID\images\cam2';subdir = dir( maindir ); % 先确定子文件夹 for i = 1 : length( subdir ) if( isequal( subdir( i ).name, '.' ) || ... isequal( subdir( i ).name, '..' ) || ... ~subdir( i ).isdir