Java常用类--File类

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常用类--File类相关的知识,希望对你有一定的参考价值。

1. File类


1.1 File类简介

  • 在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
  • File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性

1.2 File类的构造方法(构造方法不会产生新的文件)

public File(String pathname)

说明:

以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir(用户当前工作目录 )中存储。

  1. File的静态属性String separator存储了当前系统的路径分隔符。

  2. 通过File对象可以访问文件的属性


1.3 File类常用方法

序号方法描述
1public String getName() 返回由此抽象路径名表示的文件或目录的名称。
2public String getParent() 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null
3public File getParentFile() 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null
4public String getPath() 将此抽象路径名转换为一个路径名字符串。
5public boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。
6public String getAbsolutePath() 返回抽象路径名的绝对路径名字符串。
7public boolean canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。
8public boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。
9public boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
10public boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
11public boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
12public long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
13public long length() 返回由此抽象路径名表示的文件的长度。
14public boolean createNewFile() throws IOException 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。
15public boolean delete() 删除此抽象路径名表示的文件或目录。
16public void deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
17public String[] list() 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
18public String[] list(FilenameFilter filter) 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。
19public File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。
20public File[] listFiles(FileFilter filter) 返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。
21public boolean mkdir() 创建此抽象路径名指定的目录。
22public boolean mkdirs() 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。
23public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。
24public boolean setLastModified(long time) 设置由此抽象路径名所指定的文件或目录的最后一次修改时间。
25public boolean setReadOnly() 标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。
26public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
27public static File createTempFile(String prefix, String suffix) throws IOException 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
28public int compareTo(File pathname) 按字母顺序比较两个抽象路径名。
29public int compareTo(Object o) 按字母顺序比较抽象路径名与给定对象。
30public boolean equals(Object obj) 测试此抽象路径名与给定对象是否相等。
31public String toString() 返回此抽象路径名的路径名字符串。

1.4 File类创建和删除功能

  • boolean createNewFile();指定路径不存在该文件时创建文件并返回true 否则false
  • boolean mkdir() 当指定的单级文件夹不存在时创建文件夹并返回true 否则false
  • boolean mkdirs() 当指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true 否则false
  • boolean delete() 删除文件或者删除单级文件夹
    删除文件夹,这个文件夹下面不能有其他的文件和文件夹

实例:

当前文件目录:

1.4.1 mkdir()

        File dirs = new File("resource");
        dirs.mkdir(); // 如果目标目录不存在就创建文件目录


1.4.2 mkdirs()

        File dirs = new File("resource/file");
        dirs.mkdirs(); // 如果目标目录不存在就创建文件目录

执行完上述代码后的文件目录:


1.4.3 createNewFile ()

        File file = new File("resource/file/test.txt");
        file.createNewFile();//  如果目标文件不存在就创建文件

执行完上述代码后的文件目录:


1.4.4 delete()

        File file = new File("resource/file/test.txt");
        file.delete();

执行完上述代码后的文件目录:


1.5 File类的判断功能

  • boolean exists() 判断指定路径的文件或文件夹是否为空
  • boolean isAbsolute() 判断当前路径是否是绝对路径
  • boolean isDirectory() 判断当前的目录是否存在
  • boolean isFile() 判断当前的目录是否是一个文件
  • boolean isHidden() 判断当前路径是否是一隐藏文件

1.6 File类的获取功能和修改名字功能

  • File getAbsoluteFile() 获取文件的绝对路径,返回File对象
  • String getAbsolutePath() 获取文件的绝对路径,返回路径的字符串
  • String getParent() 获取当前路径的父级路径,以字符串形式返回该父级路径
  • String getName() 获取文件或文件夹的名称
  • String getPath() 获取File对象中封装的路径
  • long length() 返回文件的字节数
  • boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路径

1.7 File 类的其他获取功能

  • String[] list(); 以字符串的形式返回当前路径下所有的文件和文件夹的名称
  • File[] listFiles() 以File对象的形式返回当前路径下的所有文件和文件夹名称
  • Static File[] listRoots() 获取计算机中的所有盘符

当前文件目录:

1.7.1 String[] list()

        File file = new File("resource");
        for (String mFile : file.list()) {
            System.out.println(mFile);
        }


1.7.2 File[] listFiles()

        File file = new File("resource");
        for (File mFile : file.listFiles()) {
            System.out.println(mFile);
        }


1.7.3 File[] listRoots()

        for (File root : File.listRoots()) {
            System.out.println(root);
        }


1.8 递归打印目标目录所有.txt文件

文件目录:

    public static void main(String[] args) {
        File file = new File("resource");
        method(file);
    }

    public static void method(File file) {
//判断文件是否是目录文件
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File file1 : files) {
                //判断是否为文件
                if (file1.isFile()) {
                    //判断文件是否是以.txt结尾的文件
                    if (file1.getName().endsWith(".txt")) {
                        System.out.println(file1.getName());
                    }
                } else if (file1.isDirectory()) {
                    //回调,遍历file1
                    method(file1);
                }
            }
        }
    }



以上是关于Java常用类--File类的主要内容,如果未能解决你的问题,请参考以下文章

Java常用类--File类讲解

java File类常用方法

java常用的File类方法

java io包File类

Java学习笔记6.3.1 文件操作 - File类

Java学习笔记6.3.1 文件操作 - File类