美文网首页
Java File类

Java File类

作者: Tinyspot | 来源:发表于2022-08-31 07:00 被阅读0次

1. File 类

概念:代表物理盘符中的一个文件或文件夹

2. 文件操作

  • boolean isFile()
  • boolean isDirectory()
  • File[] listFiles()

2.1 分隔符

    // 路径分隔符 windows 分号;Macbook 冒号
    System.out.println(File.pathSeparator);
    // 名称分隔符 windows 反斜杠; Macbook 正斜杠
    System.out.println(File.separator);

2.2 文件操作

创建文件

    // 创建文件对象,实际还未创建文件
    File file = new File("src/main/resources/demo.txt");
    // 真正创建文件
    boolean newFile = file.createNewFile();
    System.out.println("不存在就创建,存在就不创建:" + newFile);
    // 可以加个判断
    if (!file.exists()) {
        // file.createNewFile();
    }

删除文件

    File file = new File("src/main/resources/demo.txt");
    // 方式一:直接删除
    System.out.println("是否删除成功:" + file.delete());
    // 方式二:JVM 退出时删除
    file.deleteOnExit();
    Thread.sleep(3000);

2.3 获取文件信息

    File file = new File("src/main/resources/demo.txt");
    file.createNewFile();
    System.out.println("绝对路径:" + file.getAbsolutePath());
    System.out.println("相对路径:" + file.getPath());
    System.out.println("文件名称:" + file.getName());
    System.out.println("父目录:" + file.getParent());
    System.out.println("文件长度:" + file.length());
    System.out.println("创建时间:" + new Date(file.lastModified()).toLocaleString());

文件权限信息

    File file = new File("src/main/resources/demo.txt");
    System.out.println("是否可写:" + file.canWrite());
    System.out.println("是否文件:" + file.isFile());
    System.out.println("是否隐藏:" + file.isHidden());

3. 文件夹操作

3.1 创建目录

    File dir = new File("src/main/resources/dir");
    if (!dir.exists()) {
        // dir.mkdir(); // 只能创建单级目录
        System.out.println("是否创建成功:" + dir.mkdirs());
    }

3.2 删除目录

    File dir = new File("src/main/resources/dir");
    // 方式一:直接删除,注意:只能删除空目录
    boolean delete = dir.delete();
    // 方式二:JVM 退出时删除
    dir.deleteOnExit();
    Thread.sleep(3000);

3.3 获取目录信息

    File dir = new File("src/main/resources/dir");
    System.out.println(dir.getAbsolutePath() + "; " + dir.getPath());

    System.out.println("是否文件夹:" + dir.isDirectory());
    System.out.println("是否隐藏:" + dir.isHidden());

3.4 遍历

普通查询

    File dir = new File("src/main/resources");
    String[] list = dir.list();
    File[] files = dir.listFiles();

递归遍历

public static void main(String[] args) throws Exception {
    File file = new File("src/main/resources");
    fileIterator(file);
}

public static void fileIterator(File fileDir) {
    File[] files = fileDir.listFiles();
    if (files == null || files.length == 0) {
        return;
    }
    for (File file : files) {
        if (file.isDirectory()) {
            fileIterator(file);
        } else {
            System.out.println(file.getAbsolutePath());
        }
    }
}

递归删除

public static void main(String[] args) throws Exception {
    File file = new File("src/main/resources/dir");
    deleteDir(file);
}

public static void deleteDir(File fileDir) {
    File[] files = fileDir.listFiles();
    if (files == null) {
        return;
    }
    // 先删除文件
    for (File file : files) {
        if (file.isDirectory()) {
            deleteDir(file);
        } else {
            System.out.println(file.getAbsolutePath() + " 被删除:" + file.delete());
        }
    }
    // 再删除目录
    System.out.println(fileDir.getAbsolutePath() + "被删除:" + fileDir.delete());
}

4. 文件过滤器(FileFilter)

public class File implements Serializable, Comparable<File> {
    public File[] listFiles(FileFilter filter) {}
}
@FunctionalInterface
public interface FileFilter {
    boolean accept(File pathname);
}

示例:

    File file = new File("src/main/resources");
    File[] files = file.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            if (pathname.getName().endsWith(".txt")) {
                return true;
            }
            return false;
        }
    });

相关文章

  • Java入门系列-22-IO流

    File类的使用 Java程序如何访问文件?通过 java.io.File 类 使用File类需要先创建文件对象 ...

  • Chapter 9 . Java IO

    阅读原文 Chapter 9 . Java IO 9.1 IO---File 类 java.io.File类:文件...

  • Java I/O二.File常用方法

    本文简单罗列 File类构造方法 File类常用方法 在Java语言的java.io包中,由File类提供了描述文...

  • java-IO输入输出流

    一.java.io.File类 java.io.File类用于表示文件/目录 File只用于表示文件的信息(名称,...

  • 第十五章文件与流

    JAVA程序如何访问文件属性 java.io.File类 File类访问文件属性 java中的文件及目录处理类 1...

  • Java-I/O学习(4)

    Java-I/O学习(4) File Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可...

  • Java—File类详解及实践

    File类介绍 File类概述   File类是java.io包下代表与平台无关的文件和目录。File可以新建、删...

  • JavaSE-File类、递归

    目录 [TOC] 第一章:File类 1.1 File类介绍 ​ java.io.File 类是文件和目录路径...

  • Java基础知识16-I/O流2

    File 类 尽管 java.io 定义的大多数类用于操作流, 但 File 类却不是. File 类没有指定如何...

  • Java I/O 输入输出流(二)—— File类常用API介绍

    File类常用于API介绍 Java.io.File类用于表示文件(目录)。 File类只用于表示文件(目录)的信...

网友评论

      本文标题:Java File类

      本文链接:https://www.haomeiwen.com/subject/klmrbrtx.html