〇. File类的一些前置知识

一, 如何实例化一个File类对象
- Java中提供了四种不同参数列表的构造器来实例化一个File类对象:

[举个栗子]
@Test
public void fileTest(){
String pathName = "e:\\parent1\\parent11\\res.txt";
File file_1 = new File(pathName);
String parent = "e:\\parent2\\parent22";
String child = "res.txt";
File file_2 = new File(parent, child);
File file_parent = new File("e:\\parent3");
String child_3 = "\\parent33\\res.txt";
File file_3 = new File(file_parent, child_3);
System.out.println("file1的路径: "+file_1);
System.out.println("file2的路径: "+file_2);
System.out.println("file3的路径: "+file_3);
}
# 输出结果
file1的路径: e:\parent1\parent11\res.txt
file2的路径: e:\parent2\parent22\res.txt
file3的路径: e:\parent3\parent33\res.txt
二, File类的几个常用方法
构造一个File对象,并不会导致任何磁盘操作。只有当我们调用File对象的某些方法的时候,才真正进行磁盘操作。
2.1 创建和重命名文件的方法
- 使用上面讲到的File类构造器去实例化一个File类, 仅仅是在内存中创建了这个对象, 只有当File类对象调用下面的方法才是真正的在磁盘上创建一个文件或文件目录;
方法 | 用途 |
---|
boolean createNewFile() | 创建文件 , 若文件存在则不创建, 返回false; |
boolean mkdir() | 创建一级文件目录, 如果此文件目录存在, 或此文件目录的父目录不存在, 则返回false; |
boolean mkdirs() | 创建多级目录 , 如果父目录不存在, 一并创建之 |
boolean renameTo(File dst) | 重命名文件或剪切文件 , file对象. renameTo(file对象2) |
注意: 如果在创建文件或文件目录时, 没有写盘符路径, 默认在项目路径下进行创建;
[举个栗子]
public void createTest(){
String pathName = "e:\\res.txt";
File file_1 = new File(pathName);
try {
if(file_1.createNewFile()){
System.out.println("文件创建成功!");
}
} catch (IOException e) {
System.out.println("文件创建失败! ");
e.printStackTrace();
}
String pathName1 = "e:\\parent1\\parent11\\res.txt";
File file_2 = new File(pathName1);
if(file_2.mkdirs()){
System.out.println("创建目录成功!");
}else{
System.out.println("创建目录失败!");
}
File file_3 = new File("e:\\parent");
file_3.mkdir()
}
String pathName_4 = "e:\\res.txt";
File file_4 = new File(pathName);
File file_5 = new File("e:\\res_5.txt");
file_4.renameTo(file_5);
2.2 删除文件的方法
方法 | 说明 |
---|
boolean delete() | 删除文件或者一个空文件夹,不能删除非空文件夹 ,马上删除文件,返回一个布尔值。 |
void deleteOnExit() | jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。 |
2.3 判断文件的方法
方法 | 说明 |
---|
boolean exists() | 文件或文件夹是否存在。 |
boolean isFile() | 是否是一个文件,如果不存在,则始终为false。 |
boolean isDirectory() | 是否是一个目录,如果不存在,则始终为false |
boolean isHidden() | 是否是一个隐藏的文件或是否是隐藏的目录。 |
boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
boolean canRead(); | 判断是否可读 |
boolean canWrite(); | 判断是否可写 |
2.4 获取文件相关属性的方法
方法 | 说明 |
---|
getName() | 获取文件或文件夹的名称,不包含上级路径。 |
length() | 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。 |
getParent() | 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。 |
boolean isHidden() | 是否是一个隐藏的文件或是否是隐藏的目录。 |
boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
getAbsolutePath() | 获取文件的绝对路径,与文件是否存在没关系 |
lastModified(); | 获取最后一次被修改的时间。 |
2.5 文件目录的相关方法
方法 | 说明 |
---|
static File[] listRoots() | 列出所有的根目录(Window中就是所有系统的盘符)。 |
list() | 回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。 |
listFiles() | 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。 |
list(FilenameFilter filter) | 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。 |
boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
listFiles(FilenameFilter filter | 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。 |
- 参考文章:
- 1
- https://www.runoob.com/java/java-file.html
- https://www.cjavapy.com/article/1631/
三, 扩展: 如何创建多级目录下的一个文件 ?

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)