File:它是文件和目录路径名的抽象表示

  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已,它是可以存在的也是可以不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • File属于java.io.包下,使用时需要导包

一、File构建文件的三种方法:

方法

说明

File(String pathname)

用指定的文件路径构造文件

File(String dir ,String subpath)

在指定的目录下创建指定文件名的文件

dir参数:指定目录路径; subpath参数:指定文件名

File(File parent ,String subpath)

根据一个文件对象和一个字文件构造文件对象

parent参数:指定目录文件;subpath参数:指定文件名

//File(String pathname),用指定的文件路径构造文件
        File  f1 = new File("e:/java.txt");

        //File(String dir ,String subpath),在指定的目录下创建指定文件名的文件
        //dir参数:指定目录路径; subpath参数:指定文件名
        File f2 = new File("e:/","java1.txt");

        //File(File parent ,String subpath),根据一个文件对象和一个字文件构造文件对象
        //parent参数:指定目录文件; subpath参数:指定文件名
        File f3 = new File("e:/");
        File   f4 = new File("f3","java2.txt");

二、File常用方法

方法

说明

exists

判断文件或目录是否存在

getAbsolutePath

返回此对象表示的文件的绝对路径名

getName

返回此对象表示的文件或目录的名称

getParent

返回此File对象的路径名的上一级,如果路径名没有上一级,则返回null

delete

删除此对象指定的文件或目录

createNewFile

创建名称的空文件,不创建文件夹

isDirectory

判断是否是目录

mkdir

创建一个目录,它的路径名有当前File对象指定

mkdirs

创建包括父目录的目录(多级目录即使父目录不存在也可以创建)

isFile

判断是否为文件

lastModified

获取文件或目录的最后修改时间

length

获取文件或目录的大小,单位为字节(byte)

/**
         * File类的常用方法
         * */        
         //creatNewFile 创建空文件,不创建文件夹
        //引入File类(file属于java.io.下需要导包)
        File f1 = new File("e:/java.txt");
        f1.createNewFile();

        //mkdir 创建一个目录,它的路径名有当前File对象指定
        File f2 = new File("e:/java1.txt");
        f2.mkdir();

        //mkdirs 创建包括父目录的目录(多级目录,即使父目录不存在也可以创建出来)
        File f3 = new File("e:/java/java1");
        f3.mkdirs();

        //getAbsolutePath	返回此对象表示的文件的绝对路径名
        System.out.println(f2.getAbsolutePath());//e:\java1.txt

        //getName	返回此对象表示的文件或目录的名称
        System.out.println(f2.getName());//java1.txt

        //getParent	返回此File对象的路径名的上一级,如果路径名没有上一级,则返回null
        System.out.println(f2.getParent());// e:\

        //delete	删除此对象指定的文件或目录
        System.out.println(f2.delete());//true

        //isDirectory	判断是否是目录
        System.out.println(f1.isDirectory());//false
        System.out.println(f3.isDirectory());//true

        //lastModified	获取文件或目录的最后修改时间
        System.out.println(f1.lastModified());//1668061985940

        //length	获取文件或目录的大小,单位为字节(byte)
        System.out.println(f1.length());//0

Tip :

File类创建对象时会有异常,可以直接抛出异常或者选择 try / catch 环绕解决
delete:如果删除的目录文件下面有内容这不可以删除
lastModified: 返回的值是毫秒值(时间戳)

 三、遍历目录(递归方法)

/**
         * 遍历目录(递归方法)
         * */

        //创建一个File对象
        File f1= new File("d:/java");
        //调用方法
        getAllFilePath(f1);


        //方法体

        //定义一个方法,用于获取给定目录下的所有内容
        public static void getAllFilePath(File srcFile){
        //获取给定的File目录下的所有文件或者目录的File数组
        File[] fileArray = srcFile.listFiles();
        //遍历该File数组,得到每一个File对象
        if (fileArray!=null){
            for (File file : fileArray) {
                //判断该File对象是否是目录
                if (file.isDirectory()){
                    //如果是,则递归调用
                    getAllFilePath(file);
                }else {
                    //如果不是,则获取绝对路径输出在控制台
                    System.out.println(file.getAbsolutePath());
                }

            }
        }
    }