Bootstrap

Java File 类详解

1. 概述

File 类是 Java 提供的用于文件和目录路径名的抽象表示。它能够用于创建、删除、查询文件和目录的信息,但不用于读写文件内容。如果需要对文件进行读写,可以结合 FileReaderFileWriterBufferedReader 等类来完成。

2. File 类的构造方法

Java 提供了多种构造方法来创建 File 对象:

import java.io.File;

public class FileConstructorDemo {
    public static void main(String[] args) {
        // 直接指定文件名
        File file1 = new File("test.txt");
        
        // 指定目录 + 文件名
        File file2 = new File("/home/user", "test.txt");
        
        // 先指定目录,再指定文件
        File parentDir = new File("/home/user");
        File file3 = new File(parentDir, "test.txt");
        
        System.out.println("文件 1: " + file1.getAbsolutePath());
        System.out.println("文件 2: " + file2.getAbsolutePath());
        System.out.println("文件 3: " + file3.getAbsolutePath());
    }
}

3. File 类的常见方法

3.1 创建和删除文件

import java.io.File;
import java.io.IOException;

public class FileCreateDeleteDemo {
    public static void main(String[] args) {
        File file = new File("example.txt");
        try {
            if (file.createNewFile()) {
                System.out.println("文件创建成功: " + file.getAbsolutePath());
            } else {
                System.out.println("文件已存在!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // 删除文件
        if (file.delete()) {// 如果删除的是文件,不经过回收站,直接删除
                            //如果删除的是空文件夹,一样
                              //如果删除的是有内容的文件夹,删除失败
            System.out.println("文件已删除。");
        } else {
            System.out.println("删除失败,可能文件不存在。");
        }
    }
}

3.2 获取文件信息

import java.io.File;

public class FileInfoDemo {
    public static void main(String[] args) {
        File file = new File("example.txt");
        System.out.println("文件名称: " + file.getName());
        System.out.println("文件路径: " + file.getPath());
        System.out.println("绝对路径: " + file.getAbsolutePath());
        System.out.println("是否存在: " + file.exists());
        System.out.println("是否是文件: " + file.isFile());
        System.out.println("是否是目录: " + file.isDirectory());
        System.out.println("文件大小 (字节): " + file.length());// 无法获取文件夹大小
    }
}

3.3 目录管理

import java.io.File;

public class DirectoryDemo {
    public static void main(String[] args) {
        File dir = new File("testDir");
        if (!dir.exists()) {
            if (dir.mkdir()) {
                System.out.println("目录创建成功: " + dir.getAbsolutePath());
            } else {
                System.out.println("目录创建失败!");
            }
        }
        
        // 列出目录中的所有文件
        String[] fileList = dir.list();
        if (fileList != null) {
            System.out.println("目录内容:");
            for (String file : fileList) {
                System.out.println("  " + file);
            }
        }
    }
}

4. 总结

  • File 类用于表示文件和目录,但不用于文件内容的操作。
  • 可以使用 File 类创建、删除文件和目录,并获取文件的各种属性。
  • File 类不提供读写功能,文件操作需要使用 FileReaderFileWriter 等类。
  • 使用 File 类时,应始终检查 exists() 以避免错误操作。

通过 File 类,Java 提供了对文件和目录的基本管理能力,使开发者能够轻松地进行文件操作。