IO之——键盘录入一个文件夹路径,统计该文件夹
2018-03-04 19:08
274 查看
思路是运用递归方式:
1,录入的时候缺少了一个判断,代码写的不是很严谨,不知道还有没有其他问题,
2,不过递归的时候总感觉得到的目录怪怪的,
不知道怎么改正,有大神还望帮忙斧正,不胜感激public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入文件路径:");
String string=scanner.nextLine();
File file=new File(string);
//获取到文件夹中的所有文件放进一个静态集合,采用递归方法,
ArrayList<File> files=getFileAll(file);
System.out.println(files);
Map<String, Integer> hash=new HashMap<>();
int value1=0;
//遍历数组,取得文件和文件名,截取文件名.后面的字符串,并匹配
for (File file2 : files) {
String str=file2.getName().substring(file2.getName().indexOf(".")+1);
if (file2.getName().toLowerCase().endsWith(str)) {
hash.put(str, value1++);
}
}
scanner.close();
System.out.println(hash);
//遍历集合,取得键值对
Set<String> keys=hash.keySet();
for (String key : keys) {
System.out.println(key+"文件有"+hash.get(key)+"个");
}
}
static ArrayList<File> list=new ArrayList<>();
public static ArrayList<File> getFileAll(File file) {
File[] files=file.listFiles();
for (File file2 : files) {
if (file2.isFile()) {
list.add(file2);
}else {
getFileAll(file2);
}
}
return list;
}
1,录入的时候缺少了一个判断,代码写的不是很严谨,不知道还有没有其他问题,
2,不过递归的时候总感觉得到的目录怪怪的,
不知道怎么改正,有大神还望帮忙斧正,不胜感激public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入文件路径:");
String string=scanner.nextLine();
File file=new File(string);
//获取到文件夹中的所有文件放进一个静态集合,采用递归方法,
ArrayList<File> files=getFileAll(file);
System.out.println(files);
Map<String, Integer> hash=new HashMap<>();
int value1=0;
//遍历数组,取得文件和文件名,截取文件名.后面的字符串,并匹配
for (File file2 : files) {
String str=file2.getName().substring(file2.getName().indexOf(".")+1);
if (file2.getName().toLowerCase().endsWith(str)) {
hash.put(str, value1++);
}
}
scanner.close();
System.out.println(hash);
//遍历集合,取得键值对
Set<String> keys=hash.keySet();
for (String key : keys) {
System.out.println(key+"文件有"+hash.get(key)+"个");
}
}
static ArrayList<File> list=new ArrayList<>();
public static ArrayList<File> getFileAll(File file) {
File[] files=file.listFiles();
for (File file2 : files) {
if (file2.isFile()) {
list.add(file2);
}else {
getFileAll(file2);
}
}
return list;
}
相关文章推荐
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数
- Java-IO-从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)
- [置顶] 从键盘输入一个路径,统计该文件夹下制定扩展名文件的数量(其中文件夹下还包含子文件夹)
- 用IO 字符流进行从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
- IO之——键盘录入文件夹路径代码
- 从键盘接收一个文件夹路径,统计该文件夹大小
- 从键盘接收一个文件夹路径,统计该文件夹大小
- 键盘录入两个文件路径,将其中一个文件夹中的所有的文件复制到另一个文件中
- 黑马程序员—这是一个能够键盘录入路径去批量修改指定文件夹下所有指定文件内容的方法
- 键盘录入一个文件夹路径,可以计算文件夹大小
- 从键盘接收一个文件夹路径,删除该文件夹
- JavaSE8基础 File createNewFile 在一个不存在的文件夹中创建文件时 会抛IO异常(绝对路径)
- 从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
- Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
- JavaIO统计一个文件夹,文件,文件夹,所有字节的大小
- 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
- 从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.txt文件名(后缀名文件)
- 经典map集合问题,黑马作业题,1.利用键盘录入,输入一个字符串,.统计该字符串中各个字符的数量(提示:字符不用排序)