File类

本文详细介绍了Java中的File类,包括其不可变性、构造方法以及常用的文件操作方法,如获取绝对路径、文件名、父路径、长度、判断文件或目录是否存在、创建新文件或目录、删除文件或目录等。此外,还展示了如何使用递归遍历目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述
1、文件和目录路径名的抽象表示形式。

2、File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。

二、构造方法
1、File(String parent , String child)
        File(String parent , String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。parent:绝对路径,child:文件名。

public class Demo_01 {
    public static void main(String[] args) {
 
        File f2 = new File("E:/MeiYong","Hello.txt");
 
    }
}
2、File(String pathname)
        File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

public class Demo_01 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/Hello.txt");
    }
}
3、File(File parent, String child)
        File(File parent, String child):根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

public class Demo_01 {
    public static void main(String[] args) {
        File file = new File("E:/MeiYong");
        File f3 = new File(file,"Hello.txt");
    }
}
三、File类的常用功能
1、getAbsolutePath();
        getAbsolutePath():方法用来获取某文件的绝对路径

public class Demo_02 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        String absolutePath1 = f1.getAbsolutePath();
        System.out.println("文件的绝对路径:"+absolutePath1);
    }
}
2、getName();
        getName():用来获取文件名称

package com.hp.Test11_File;
 
import java.io.File;
 
public class Demo_02 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        String name1 = f1.getName();
        System.out.println("文件名称:"+name1);
    }
}
3、getParent();
        getParent():用来获取父路径

public class Demo_02 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        String parent1 = f1.getParent();
        System.out.println("父路径:"+parent1);
    }
}
4、length();
        length():用来获取文件长度

public class Demo_02 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        long length = f1.length();
        System.out.println("文件长度为:"+length);
    }
}

5、exists();
        exists():用来判断文件是否存在。

public class Test1111 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        boolean exists1 = f1.exists();
        System.out.println("该文件是否存在:"+exists1);
    }
}

6、isDirectory();
        isDirectory():用来判断是否为文件夹。

public class Test1111 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        boolean directory = f1.isDirectory();
        System.out.println("该文件是否为文件夹:"+directory);
    }
}

7、isFile();
        isFile():用来判断是否为文件。

public class Test1111 {
    public static void main(String[] args) {
        File f1 = new File("E:/MeiYong/asd/Hello.txt");
        boolean file = f1.isFile();
        System.out.println("该文件是否为文件:"+file);
    }
}

8、createNewFile();
        createNewFile():用来添加文件。如果文件的前置目录路径不存在,则抛出异常。文件不存在则创建一个空文件,文件存在则不做任何操作。

public class Demo_04 {
    public static void main(String[] args) throws IOException {
        //File类对象的创建 文件---文件夹
        File f1 = new File("D:/aa/bb/b.txt");
        f1.createNewFile();
    }
}
9、mkdir();
        mkdir():用来创建文件夹,该方法要求所有前置目录已经存在,才会创建对应的文件夹。

public class Demo_04 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("D:/aa/bb/b.txt");
        f1.mkdir();
    }
}
10、mkdirs();
        mkdirs():可以创建多个文件夹,该方法可以自动补全所有父目录,并创建文件夹。

public class Demo_04 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("D:/aa/bb/b.txt");
        f1.mkdirs();
    }
}
11、delete();
        delete():删除文件或文件夹。删除的文件夹必须为空才可以删除成功,删除的文件可以有内容。

public class Demo_04 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("D:/aa/bb/b.txt");
        f1.delete();
    }
}
四、目录的遍历
        在File类中我们通常不知道一个文件中包含了多少哥子文件夹,所以for循环使用起来就比较鸡肋了。因此我们可以通过递归的方法来实现目录的遍历。

1、使用for循环遍历
public class Demo_04 {
    public static void main(String[] args) throws IOException {
        File f1 = new File("D:/aa");
        File[] files = f1.listFiles();
        System.out.println(Arrays.toString(files));
        for (int i = 0; i < files.length; i++) {
            File temp = files[i];
            File[] files1 = temp.listFiles();
            System.out.println(Arrays.toString(files1));
        }
    }
}
 

 2、使用递归的方法

public class Demo_05 {
    public static void main(String[] args) {
        File file = new File("D:/aa");
        directoryList(file);
 
    }
    public static void directoryList(File file) {
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            File temp = files[i];
            if (temp.isDirectory()){
                System.out.println(temp);
                directoryList(temp);
            }
        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值