首页 > 编程笔记 > Java笔记 阅读:11

Java File类的用法(附带实例)

Java 中的 File 类表示一个与平台无关的文件或目录。File 类名很有欺骗性,初学者会误认为 File 对象只是一个文件,其实它也可能是一个目录。

Java File类常用方法

1) 构造方法

2) 获得文件名

3) 文件属性测试

4) 文件操作

5) 目录操作

Java File类实战

1) 创建目录。示例代码如下:
public static void createDirectoryExample() {
    // 在当前工程根目录下创建 data 目录
    File dir = new File("data"); // ①
    if (!dir.exists()) {  // ② 如果 data 目录不存在,则创建。
        if (dir.mkdir()) { // ③
            System.out.println("目录创建成功");
        } else {
            System.out.println("目录创建失败");
        }
    }
}
上述代码第 ① 处创建一个 File 对象 dir,表示要创建的目录。注意,这里的路径是相对路径,相对于当前工程的根目录。

代码第 ② 处使用 exists() 方法检查目录是否已经存在。如果 data 目录不存在,则进入 if 语句块执行目录创建操作。

代码第 ③ 处使用 mkdir() 方法创建目录。mkdir() 方法用于创建单级目录。如果成功创建了目录,进入 if 语句块输出“目录创建成功”,否则输出“目录创建失败”。

总结一下,这段代码首先创建了一个 File 对象表示要创建的目录“data”,然后检查该目录是否已经存在[通过 exists() 方法]。如果目录不存在,则使用 mkdir() 方法创建该目录。最后根据创建结果输出相应的提示信息。

2) 创建文件。示例代码如下:
public static void createFileExample() {
    File file = new File("data/file.txt"); // ①
    try {
        if (file.createNewFile()) { // ②
            System.out.println("文件创建成功");
        } else {
            System.out.println("文件已存在");
        }
    } catch (IOException e) {
        System.err.println("文件创建失败:" + e.getMessage());
    }
}
这段代码的功能是在当前工程根目录的 data 目录下创建一个名为“file.txt”的文件。

其中代码第 ① 处创建一个 File 对象 file,表示要创建的文件。注意,这里的路径是相对路径,相对于当前工程的根目录。

代码第 ② 处使用 createNewFile() 方法创建文件。该方法返回一个布尔值,表示文件是否成功创建。如果文件成功创建,进入 if 语句块,输出“文件创建成功”,否则输出“文件已存在”。

3) 删除文件。示例代码如下:
public static void deleteFileExample() {
    File file = new File("data/file.txt");
    if (file.delete()) { // ①
        System.out.println("文件删除成功");
    } else {
        System.out.println("文件删除失败");
    }
}
这段代码的功能是删除当前工程根目录下的 data 目录中名为 file.txt 的文件。其中代码 File file = new File("data/file.txt") 创建一个 File 对象 file,表示要删除的文件。注意,这里的路径是相对路径,相对于当前工程的根目录。

其中代码第 ① 处使用 file.delete() 方法删除文件。该方法返回一个布尔值,表示文件是否成功删除。如果文件成功删除,进入 if 语句块,输出“文件删除成功”,否则输出“文件删除失败”。

4) 查看文件属性。示例代码如下:
public static void viewFileAttributesExample() {
    File file = new File("data/build.txt");
    System.out.println("文件名:" + file.getName());
    System.out.println("文件路径:" + file.getPath());
    System.out.println("文件绝对路径:" + file.getAbsolutePath());
    System.out.println("文件大小:" + file.length() + " 字节");
    System.out.println("是否为文件:" + file.isFile());
    System.out.println("是否为目录:" + file.isDirectory());
    System.out.println("最后修改时间:" + new Date(file.lastModified()));
}

5) 列出目录中的所有文件和子目录的名。示例代码如下:
public static void listDirectoryExample() {
    File dir = new File("data/"); // ① 创建指向data目录的File对象
    String[] filesAndDirs = dir.list(); // ② 获取目录下的所有文件和子目录的名称
    System.out.println("目录下的文件和子目录:");
    for (String name : filesAndDirs) { // ③ 遍历文件和目录名称
        System.out.println(name);
    }
    File[] filesAndDirsArr = dir.listFiles(); // ④ 获取目录下的所有文件和子目录的File数组
    System.out.println("目录下的文件和子目录的绝对路径:");
    for (File file : filesAndDirsArr) { // ⑤ 遍历文件和目录对象
        System.out.println(file.getAbsolutePath()); // ⑥ 打印绝对路径
    }
}
代码解释如下:
路径中会用到路径分隔符,路径分隔符在不同平台上是有区别的,UNIX、Linux 和 macOS 中使用正斜杠“/”,而 Windows 中使用反斜杠“\”。Java 支持两种写法,但是反斜杠“\”属于特殊字符,前面需要加转义字符。例如,C:\Users\a.java 在程序代码中应该使用 C:\\Users\\a.java 表示,或者表示为 C:/Users/a.java。

相关文章