java文件操作——File类
java文件操作类File
File类可以操作硬盘上的文件和文件夹。
File对象就是硬盘上的文件或者文件夹对象,也可以对文件进行创建,删除等操作。
File对象是文件和目录路径名的抽象表示。
绝对路径和相对路劲
绝对路径:从盘符开始
File file = new File("A:\\school\\src\\school\\chuangkou.java");
相对路径:相对当前项目下的路径
File file = new File("chuangkou.java");
File创建功能方法
File删除方法
删除目录时的注意事项:
delete方法直接删除不走回收站。
如果删除的是一个文件,直接删除。
如果删除的是一个文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。
File判断和获取功能方法
高级:
listFiles方法注意事项:
当调用者不存在时,返回null当调用者是一个文件时,返回null
当调用者是一个空文件夹时,返回一个长度为0的数组
当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
当调用者是一个需要权限才能进入的文件夹时,返回null
练习
package com.jifu.test.file;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class StatisticalFiles {
/**
* 需求,统计指定目录下的子目录以及其他各种类型文件的数目
*
* @param args
*/
public static void main(String[] args) {
Map<String, Integer> total = new HashMap<>();
File file = new File("Z:\\有道云\\ynote-desktop");
File[] files = file.listFiles();
for (File child : files
) {
int num = 1;
if (child.isDirectory()) {
if (total.containsKey("dir")) {
num = total.get("dir");
num += 1;
}
//统计目录
total.put("dir", num);
} else {
String fileEnd = child.getName().substring(child.getName().lastIndexOf(".")+1);
String fileName = child.getName();
if (fileName.endsWith(fileEnd)) {
if (total.containsKey(fileEnd)) {
num = total.get(fileEnd);
num += 1;
}
total.put(fileEnd, num);
}
}
}
total.forEach((s, integer) -> System.out.println(s + "----------" + integer));
}
}