File文件操作
1. 概述
- 目的:存储数据(文件)
- 描述读写哪个文件
2. 构造方法
- 用来描述一个文件夹或文件
- 可以描述一个不是真实存在的文件夹或文件
File(String path);
File(String parent,String child);
File(File parent,String child);
3. 绝对路径和相对路径
3.1 绝对路径
- 以盘符开始的路径
File src = new File("E:\\src");
3.2 相对路径
- 不以盘符开始的路径
ile src = new File("JavaEE\\22.txt");
使用软件编程时,如idea,在真正运行时会自动补全前面的路径
4. 创建和删除
4.1 创建
- 使用File类中的方法来创建文件和文件夹
file.createNewFile();//创建文件
file.mkdirs();//创建多级文件夹
file.mkdir();//创建单级文件夹
4.2 删除
- 使用File类中的delete方法来删除文件
- 只能删除文件和空文件夹
- 文件夹内有文件需要先删除文件夹内的文件在删除文件夹
file.delete()
- 使用递归的方法删除多级文件夹和文件
private static void deleteDir(File src) {
File[] files = src.listFiles();
//判断是否是文件
for (File file : files) {
//文件则删除
if (file.isFile()){
file.delete();
}else{
//否则递归
deleteDir(file);
}
}
//删除
src.delete();
}
5. 获取和判断方法
5.1 判断类型
file.isFile()
file.isDeractory();
5.2 判断是否真实存在
file.exists()
5.3 获取名字
file.getName
6. File和FileList
-
将文件放入list集合中方便操作
-
统计文件类型(广度查找)
//定义file对象
File src = new File("E:\\src");
//定义三个统计变量
int countTxt = 0;
int countPng = 0;
int countOother = 0;
//定义linkedlist集合暂存
LinkedList<File> list = new LinkedList<>();
list.add(src);
//循环对元素进行操作
while(true){
//取第一个元素
File file = null;
try {
file = list.removeFirst();
} catch (Exception e) {
}
//判断是否有元素
if (file == null){
//为空结束循环
break;
}else{
//判断是文件还是文件夹
if (file.isFile()){
//是文件统计
if (file.getName().endsWith(".txt")){
countTxt++;
}else if(file.getName().endsWith(".png")){
countPng++;
}else{
countOother++;
}
}else {
//是文件夹,内容放入队列
File[] files = file.listFiles();
for (File file1 : files) {
list.add(file1);
}
}
}
//打印结果
System.out.println("txt文件数量:" + countTxt + "个");
System.out.println("png文件数量:" + countPng + "个");
System.out.println("其他文件数量:" + countOother + "个");