IO流-----File
一,File
File是什么?
1.在读写文件时告诉虚拟机要操作的(文件夹或文件)在哪
2.对(文件夹或文件)本身进行操作,包括创建和删除等。。。
File:它是文件和目录名的抽象表示,文件和目录名可以通过File封装成对象,File封装的对象仅仅是一个路径名,它是存在的也可以是不存在的。

FIle的创建功能

File的删除功能:delete() (删除后不走回收站),只能删除空文件夹或文件。
File的判断和获取功能

File累的高级获取功能:listFiles() :返回此抽象路径名表示的目录中的文件和目录File对象数组(包括隐藏文件和文件夹)
注意事项:1.当调用者是一个文件时返回NUll
2.当调用者不存在时返回null
3.当调用者是空文夹,返回一个长度为0的数组
4.当调用者是一个有内容的文件夹时,将里面所有文件夹和文件的路径放入在File数组中返回
练习:
1.删除多级文件夹
package com.guncun.io; import java.io.File; //删除多级文件夹 public class FilePractice { public static void main(String[] args) { File file = new File("C:\\Users\\Administrator\\Desktop\\test"); deledir(file); } private static void deledir(File file) { File[] files = file.listFiles(); for (File file1 : files) {//遍历得到里面的每一个文件和文件夹的File对象 if (file1.isFile()){//判断是否为文件,是直接删除 file1.delete(); }else { deledir(file1);//递归 } } //最后删除这个文件夹 file.delete(); } }
2.统计文件夹中,每中文件出现的次数
package com.guncun.io; import java.io.File; import java.util.Arrays; import java.util.HashMap; //统计文件夹中,每中文件出现的次数 public class FilePractice2 { public static void main(String[] args) { File file = new File("E:/java/io/io_file"); HashMap<String,Integer> hashMap = new HashMap<>(); selectkind(hashMap,file).forEach((key,value)->{ System.out.println(key+" "+value+"种"); }); } private static HashMap<String,Integer> selectkind(HashMap<String, Integer> hashMap, File file) { //遍历文件夹中的文件和文件夹对象 File[] files = file.listFiles(); for (File file1 : files) { if (file1.isFile()){ String[] split = file1.getName().split("\\.");//获取文件名 if (hashMap.containsKey(split[1])){ Integer count = hashMap.get(split[1]);//得到集合中存的值(种类数量) count++; hashMap.put(split[1],count);//覆盖原来的值 }else { hashMap.put(split[1],1); } }else { selectkind(hashMap,file1);//递归 } } return hashMap; } }

浙公网安备 33010602011771号