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对象
  1. File对象可以定位文件和文件夹,它封装的只是一个路径名,这个路径可以存在也可以不存在。

  2. 构造方法里的文件路径可以是绝对路径也可以是相对路径,绝对路径是从盘符根文件夹开始一直到某个具体的文件或文件夹,相对路径是相对于当前项目的。

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对象数组
  1. 当调用的File表示的路径不存在、表示的是文件、或者是需要权限才能访问的文件夹时,返回null。

  2. 当调用的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();
}

参考资料

黑马程序员-2023新版Java视频教程-进阶篇Day12-02-File类