Java 简明教程

Java - File Class

Java File Class

Java File 类以抽象的方式表示文件和目录路径名。此类用于创建文件和目录、文件搜索、文件删除等。

File 对象表示磁盘上的实际文件/目录。

File Class Constructors

以下是用于创建 File 对象的构造函数的列表。

Sr.No.

Method & Description

1

File(File parent, String child) 此构造函数从父抽象路径名和子路径名字符串创建一个新的文件实例。

2

File(String pathname) 此构造函数通过将给定的路径名字符串转换为抽象路径名来创建新的文件实例。

3

File(String parent, String child) 此构造函数从父路径名字符串和子路径名字符串创建一个新的文件实例。

4

File(URI uri) 此构造函数通过将给定的文件:URI 转换为抽象路径名来创建新的文件实例。

File Class Methods

一旦你在手中有 File 对象,则有一系列助手方法可用于操作文件。

Sr.No.

Method & Description

1

public String getName() 返回此抽象路径名表示的文件或目录的名称。

2

public String getParent() 返回此抽象路径名的上一级路径名字符串,如果此路径名未命名任何上一级目录,则返回 null。

3

public File getParentFile() 返回此抽象路径名的上一级抽象路径名,如果此路径名未命名任何上一级目录,则返回 null。

4

public String getPath() 将此抽象路径名转换为路径名字符串。

5

public boolean isAbsolute() 测试此抽象路径名是否是绝对路径。如果此抽象路径名是绝对路径,则返回 true,否则返回 false。

6

public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。

7

public boolean canRead() 测试应用程序能否读取由该抽象路径名表示的文件。当且仅当该抽象路径名指定的文件存在且应用程序能够读取此文件时,才返回 true;否则返回 false。

8

public boolean canWrite() 测试应用程序能否修改由该抽象路径名表示的文件。当且仅当文件系统实际包含由该抽象路径名表示的文件且应用程序被允许写入此文件时,才返回 true;否则返回 false。

9

public boolean exists() 测试由该抽象路径名表示的文件或目录是否存在。当且仅当由该抽象路径名表示的文件或目录存在时,才返回 true;否则,返回 false。

10

public boolean isDirectory() 测试由该抽象路径名表示的文件是否为目录。当且仅当由该抽象路径名表示的文件存在且为目录时,才返回 true;否则,返回 false。

11

public boolean isFile() 测试由该抽象路径名表示的文件是否为普通文件。如果文件不是目录以及还满足其他系统相关条件,则该文件即为普通文件。由 Java 应用程序创建的任何非目录文件保证是普通文件。当且仅当由该抽象路径名表示的文件存在且为普通文件时,才返回 true;否则,返回 false。

12

public long lastModified() 返回由该抽象路径名表示的文件最后修改的时间。返回一个长值表示文件最后修改的时间,该时间以自纪元(1970 年 1 月 1 日格林威治时间 00:00:00)以来的毫秒为单位衡量,如果该文件不存在或出现 I/O 错误,则返回 0L。

13

public long length() 返回由该抽象路径名表示的文件的长度。如果该路径名表示目录,则不指定返回值。

14

public boolean createNewFile() throws IOException 当且仅当具有此名称的文件尚未存在时,以原子方式创建由该抽象路径名命名的新的空文件。如果命名的文件不存在且成功创建,则返回 true;如果命名的文件已存在,则返回 false。

15

public boolean delete() 删除由该抽象路径名表示的文件或目录。如果该路径名表示目录,则必须先清空该目录才能删除。当且仅当文件或目录成功删除时,才返回 true;否则,返回 false。

16

public void deleteOnExit() 请求在虚拟机终止时删除由该抽象路径名表示的文件或目录。

17

public String[] list() 返回一个字符串数组,其中包含由该抽象路径名表示的目录中的文件和目录的名称。

18

public String[] list(FilenameFilter filter) 返回一个字符串数组,其中包含由该抽象路径名表示的目录中满足指定筛选器的文件和目录的名称。

20

public File[] listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。

21

public File[] listFiles(FileFilter filter) 返回由该抽象路径名表示的目录(该抽象路径名表示目录中满足指定筛选的文件和目录)的一个抽象路径名数组。

22

public boolean mkdir() 创建由该抽象路径名命名的目录。当且仅当该目录已创建时返回真;否则,返回假。

23

public boolean mkdirs() 创建由该抽象路径名命名的目录,包括任何必要的但尚不存在的父目录。当且仅当该目录已创建,连同所有必要的父目录;否则,返回假。

24

public boolean renameTo(File dest) 重命名由该抽象路径名表示的文件。当且仅当重命名成功时返回真;否则,返回假。

25

public boolean setLastModified(long time) 设置由该抽象路径名命名的文件或目录的上次修改时间。当且仅当该操作成功时返回真;否则,返回假。

26

public boolean setReadOnly() 以只允许读取操作的方式标记由该抽象路径名命名的文件或目录。当且仅当该操作成功时返回真;否则,返回假。

27

public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串来生成其名称。返回表示新创建的空文件的抽象路径名。

28

public static File createTempFile(String prefix, String suffix) throws IOException 在缺省临时文件目录中创建空文件,使用给定的前缀和后缀来生成其名称。调用该方法等同于调用 createTempFile(prefix, suffix, null)。返回表示新创建的空文件的抽象路径名。

29

public int compareTo(File pathname) 按词典顺序比较两个抽象路径名。如果该参数等于该抽象路径名,则返回零;如果该抽象路径名按词典顺序小于该参数,则返回小于零的值;如果该抽象路径名按词典顺序大于该参数,则返回大于零的值。

30

public int compareTo(Object o) 将该抽象路径名与另一个对象进行比较。如果该参数等于该抽象路径名,则返回零;如果该抽象路径名按词典顺序小于该参数,则返回小于零的值;如果该抽象路径名按词典顺序大于该参数,则返回大于零的值。

31

public boolean equals(Object obj) 测试该抽象路径名以确定其是否与给定对象相等。当且仅当该参数非空并且该抽象路径名表示与该抽象路径名表示的文件或目录相同的文件或目录时,返回真。

32

public String toString() 返回该抽象路径名的路径名字符串。这只是由 getPath() 方法返回的字符串。

File Class Example in Java

以下是演示 File 对象的示例 -

package com.tutorialspoint;
import java.io.File;

public class FileDemo {

   public static void main(String[] args) {
      File f = null;
      String[] strs = {"test1.txt", "test2.txt"};
      try {
         // for each string in string array
         for(String s:strs ) {
            // create new file
            f = new File(s);

            // true if the file is executable
            boolean bool = f.canExecute();

            // find the absolute path
            String a = f.getAbsolutePath();

            // prints absolute path
            System.out.print(a);

            // prints
            System.out.println(" is executable: "+ bool);
         }
      } catch (Exception e) {
         // if any I/O error occurs
         e.printStackTrace();
      }
   }
}

假设当前目录中有一个可执行文件 test1.txt 和另一个不可执行文件 test2.txt。让我们编译并运行上述程序,将会得到以下结果 -

Output

/home/cg/root/2880380/test1.txt is executable: false
/home/cg/root/2880380/test2.txt is executable: false