Java中File类的构造方法、常用成员方法和简单应用
java.io.File类
Java语言有专门的File类用来管理磁盘文件和文件夹。
每个File类的对象表示一个磁盘文件或文件夹,其对象属性中包含了文件或文件夹的相关信息,如名称、长度、所含文件个数等,调用它的方法则可以完成对文件或文件夹的常用管理操作,如创建、删除等。
利用File类可以创建、删除文件或文件夹以及获取文件或文件夹的属性,但是File类没有包含读写文件内容的方法,因而用来无法来读取一个文件中存储的数据。
File类对象的创建
| 构造方法 | 说明 |
|---|---|
| File(String pathname) | 根据文件路径字符串创建File对象 |
| File(String parent, String child) | 根据父路径名字符串和子路径名字符串创建File对象 |
| File(File parent, String child) | 根据父路径File对象和子路径名字符串创建File对象 |
File对象可以定位文件和文件夹,它封装的只是一个路径名,这个路径可以存在也可以不存在。
构造方法里的文件路径可以是绝对路径也可以是相对路径,绝对路径是从盘符根文件夹开始一直到某个具体的文件或文件夹,相对路径是相对于当前项目的。
File file1=new File("E:\\Java Program");
File file2=new File("E:\\Java Program","Test");
File file3=new File(file1,"Test");
File类常用成员方法
判断相关方法
| 方法 | 说明 |
|---|---|
| boolean exists() | 判断文件/文件夹是否存在 |
| boolean isDirectory | 判断是否是文件夹 |
| boolean isFile | 判断是否是文件 |
| boolean isAbsolute() | 判断封装的是否是绝对路径 |
获取相关方法
| 方法 | 说明 |
|---|---|
| String getPath() | 返回文件/文件夹定义时的路径 |
| String getAbsolutePath() | 返回文件/文件夹的绝对路径 |
| String getName() | 返回文件/文件夹的名称,文件会带后缀名 |
| long length() | 返回文件大小,字节表示(不能返回文件夹大小) |
| long lastModified() | 返回文件/文件夹的最后修改时间,时间毫秒值表示 |
//可通过创建Date对象返回最后修改时间
System.out.println(file1.lastModified());
System.out.println(new Date(file1.lastModified()));
/*输出结果
1697870718439
Sat Oct 21 14:45:18 CST 2023
*/
修改相关方法
| 方法 | 说明 |
|---|---|
| boolean createNewFile() | 创建一个新的空的文件 |
| boolean mkdirs() | 创建多级文件夹 |
| boolean delete() | 删除路径对应的文件/空文件夹(不进入回收站) |
遍历方法
| 方法 | 说明 |
|---|---|
| File[] listFiles() | 获取当前文件夹下的所有一级文件对象,返回File对象数组 |
当调用的File表示的路径不存在、表示的是文件、或者是需要权限才能访问的文件夹时,返回null。
当调用的File表示的路径是一个空文件夹时,返回一个长度为0的数组。
File类的简单应用
计算文件夹的大小
public static long getDirLength(File f){
long lengthAll=0;
File[] files=f.listFiles();
for (File file : files) {
if(file.isFile()){
lengthAll+=file.length();
}
else {
lengthAll+=getDirLength(file);
}
}
return lengthAll;
}
删除非空文件夹
public static void DeleteaDir(File f) {
File[] files=f.listFiles();
for (File file : files) {
if(file.isFile()){
file.delete();
}
else {
DeleteaDir(file);
}
}
f.delete();
}