1.构造方法2.绝对路径和相对路径3.创建4.删除5.获取和判断6.listFiles()方法7.案例
File:它是文件和目录路径名的抽象表示。
文件和目录可以通过File封装成对象。
File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的。
1.构造方法 2.绝对路径和相对路径绝对路径:
// 从盘符开始
File file = new File("G:\test\a.txt");
相对路径:
// 当前项目下的a.txt
File file2 = new File("a.txt");
// 当前项目下的指定模块下的a.txt
File file3 = new File("模块名\a.txt");
3.创建
public boolean createNewFile() 创建一个新的空的文件
如果文件存在,那么创建失败,返回false如果文件不存在,那么创建成功,返回truecreateNewFile方法不管调用者有没有后缀名,只能创建文件
public boolean mkdir() 创建一个单级文件夹
只能创建单级文件夹,不能创建多级文件夹不管调用者有没有后缀名,只能创建单级文件夹
public boolean mkdirs() 创建一个多级文件夹
可以创建单级文件夹,也可以创建多级文件夹不管调用者有没有后缀名,只能创建文件夹mkdirs 能创建单级,也能创建多级,那么就不必使用 mkdir 了 4.删除
注意:
不放回收站,直接删除。如果删除的是文件,那么直接删除;如果删除的是文件夹,那么只能删除空文件夹。如果要删除一个有内容的文件夹,只能先进入到这个文件夹,把里面的内容全部删除完毕,才能再次删除这个文件夹。简单来说,只能删除文件和空文件夹。 5.获取和判断
public String getName() 返回由此抽象路径名表示的文件或目录的名称
如果调用者是文件,那么获取的是文件名和后缀名如果调用者是一个文件夹,那么获取的是文件夹的名字 6.listFiles()方法
7.案例练习1:在当前模块下的ddd文件夹中创建一个data.txt文件。
import java.io.File;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
// createNewFile() 要求文件所在的文件夹必须存在
File file = new File("filemodule\ddd");
if (!file.exists()) {
// 如果文件夹不存在,就创建出来
file.mkdirs();
}
File newFile = new File(file,"data.txt");
newFile.createNewFile();
}
}
练习2:删除一个多级文件夹。
import java.io.File;
public class Test2 {
public static void main(String[] args) {
File src = new File("C:\Users\Dell\Desktop\filepro");
deleteDir(src);
}
private static void deleteDir(File src) {
// 1.进入 --- 得到src文件夹里面所有内容的File对象
File[] files = src.listFiles();
// 2.遍历 --- 因为想得到src文件夹里面每一个文件和文件夹的File对象
for (File file : files) {
if (file.isFile()) { // 3.判断 --- 如果遍历到的File对象是一个文件,那么直接删除
file.delete();
} else { // 4.判断 --- 递归
deleteDir(file); // 参数一定要是src文件夹里面的文件夹File对象
}
}
// 最后再删除这个文件夹
src.delete();
}
}
案例3:统计一个文件夹中,每种文件出现的次数。
import java.io.File;
import java.util.HashMap;
public class Test3 {
public static void main(String[] args) {
File file = new File("C:\Users\Dell\Desktop\filepro");
HashMap hm = new HashMap<>();
getCount(hm, file);
System.out.println(hm);
}
private static void getCount(HashMap hm, File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile()) {
String fileName = f.getName();
String[] fileNameArr = fileName.split("\.");
if (fileNameArr.length == 2) {
String fileEndName = fileNameArr[1];
if (hm.containsKey(fileEndName)) {
Integer count = hm.get(fileEndName);
count++;
hm.put(fileEndName, count);
} else {
hm.put(fileEndName, 1);
}
}
} else {
getCount(hm,f);
}
}
}
}



