Java - 文件类



简介

Java File 类是文件和目录路径名的抽象表示。以下是关于 File 的重要要点:

  • 实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。如果它确实表示这样的对象,则该对象驻留在分区中。分区是操作系统特定的文件系统存储部分。

  • 文件系统可能会对实际文件系统对象上的某些操作(例如读取、写入和执行)实施限制。这些限制统称为访问权限。

  • File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永远不会改变。

类声明

以下是Java.io.File类的声明:

public class File
   extends Object
      implements Serializable, Comparable<File>

字段

以下是Java.io.File类的字段:

  • static String pathSeparator - 这是系统相关的路径分隔符字符,为了方便起见,表示为字符串。

  • static char pathSeparatorChar - 这是系统相关的路径分隔符字符。

  • static String separator - 这是系统相关的默认名称分隔符字符,为了方便起见,表示为字符串。

  • static char separatorChar - 这是系统相关的默认名称分隔符字符。

类构造函数

序号 构造函数和描述
1

File(File parent, String child)

此方法根据父抽象路径名和子路径名字符串创建一个新的 File 实例。

2

File(String pathname)

此方法通过将给定的路径名字符串转换为抽象路径名来创建一个新的 File 实例。

3

File(String parent, String child)

此方法根据父路径名字符串和子路径名字符串创建一个新的 File 实例。

4

File(URI uri)

此方法通过将给定的文件:URI 转换为抽象路径名来创建一个新的 File 实例。

类方法

序号 方法和描述
1 boolean canExecute()

此方法测试应用程序是否可以执行此抽象路径名表示的文件。

2 boolean canRead()

此方法测试应用程序是否可以读取此抽象路径名表示的文件。

3 boolean canWrite()

此方法测试应用程序是否可以修改此抽象路径名表示的文件。

4 int compareTo(File pathname)

此方法按字典顺序比较两个抽象路径名。

5 boolean createNewFile()

此方法以原子方式创建此抽象路径名指定的新空文件,当且仅当尚不存在具有此名称的文件时。

6 static File createTempFile(String prefix, String suffix)

此方法在默认的临时文件目录中创建空文件,使用给定的前缀和后缀生成其名称。

7 static File createTempFile(String prefix, String suffix, File directory)

此方法在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

8 boolean delete()

此方法删除此抽象路径名表示的文件或目录。

9 void deleteOnExit()

此方法请求在虚拟机终止时删除此抽象路径名表示的文件或目录。

10 boolean equals(Object obj)

此方法测试此抽象路径名与给定对象是否相等。

11 boolean exists()

此方法测试此抽象路径名表示的文件或目录是否存在。

12 File getAbsoluteFile()

此方法返回此抽象路径名的绝对形式。

13 String getAbsolutePath()

此方法返回此抽象路径名的绝对路径名字符串。

14 File getCanonicalFile()

此方法返回此抽象路径名的规范形式。

15 String getCanonicalPath()

此方法返回此抽象路径名的规范路径名字符串。

16 long getFreeSpace()

此方法返回此抽象路径名命名的分区中未分配的字节数。

17 String getName()

此方法返回此抽象路径名表示的文件或目录的名称。

18 String getParent()

此方法返回此抽象路径名的父路径名字符串,如果此路径名未命名父目录,则返回 null。

19 File getParentFile()

此方法返回此抽象路径名的父抽象路径名,如果此路径名未命名父目录,则返回 null。

20 String getPath()

此方法将此抽象路径名转换为路径名字符串。

21 long getTotalSpace()

此方法返回此抽象路径名命名的分区的尺寸。

22 long getUsableSpace()

此方法返回此虚拟机在此抽象路径名命名的分区上可用的字节数。

23 int hashCode()

此方法计算此抽象路径名的哈希码。

24 boolean isAbsolute()

此方法测试此抽象路径名是否为绝对路径名。

25 boolean isDirectory()

此方法测试此抽象路径名表示的文件是否为目录。

26 boolean isFile()

此方法测试此抽象路径名表示的文件是否为普通文件。

27 boolean isHidden()

此方法测试此抽象路径名命名的文件是否为隐藏文件。

28 long lastModified()

此方法返回此抽象路径名表示的文件上次修改的时间。

29 long length()

此方法返回此抽象路径名表示的文件的长度。

30 String[] list()

此方法返回一个字符串数组,其中包含此抽象路径名表示的目录中的文件和目录的名称。

31 String[] list(FilenameFilter filter)

此方法返回一个字符串数组,其中包含此抽象路径名表示的目录中满足指定过滤器的文件和目录的名称。

32 File[] listFiles()

此方法返回一个抽象路径名数组,其中包含此抽象路径名表示的目录中的文件的名称。

33 File[] listFiles(FileFilter filter)

此方法返回一个抽象路径名数组,其中包含此抽象路径名表示的目录中满足指定过滤器的文件和目录的名称。

34 File[] listFiles(FilenameFilter filter)

此方法返回一个抽象路径名数组,其中包含此抽象路径名表示的目录中满足指定过滤器的文件和目录的名称。

35 static File[] listRoots()

此方法列出可用的文件系统根目录。

36 boolean mkdir()

此方法创建此抽象路径名命名的目录。

37 boolean mkdirs()

此方法创建此抽象路径名命名的目录,包括任何必要的但不存在的父目录。

38 boolean renameTo(File dest)

此方法重命名此抽象路径名表示的文件。

39 boolean setExecutable(boolean executable)

这是一个方便的方法,用于为此抽象路径名设置所有者的执行权限。

40 boolean setExecutable(boolean executable, boolean ownerOnly)

此方法为此抽象路径名设置所有者或所有人的执行权限。

41 boolean setLastModified(long time)

此方法设置此抽象路径名命名的文件或目录的上次修改时间。

42 boolean setReadable(boolean readable)

这是一个方便的方法,用于为此抽象路径名设置所有者的读取权限。

43 boolean setReadable(boolean readable, boolean ownerOnly)

此方法为此抽象路径名设置所有者或所有人的读取权限。

44 boolean setReadOnly()

此方法标记此抽象路径名命名的文件或目录,以便只允许读取操作。

45 boolean setWritable(boolean writable)

这是一个方便的方法,用于为此抽象路径名设置所有者的写入权限。

46 boolean setWritable(boolean writable, boolean ownerOnly)

此方法为此抽象路径名设置所有者或所有人的写入权限。

47 String toString()

此方法返回此抽象路径名的路径名字符串。

48 URI toURI()

此方法构造一个表示此抽象路径名的文件:URI。

继承的方法

此类继承自以下类的方法:

  • Java.io.Object

示例

以下是一个演示 File 对象的示例:我们创建了 File 引用和两个字符串的 String 数组,表示文件名。然后我们创建了一个文件对象,并使用 File.canExecute() 和 File.getAbsolutePath() 打印了相应的值。

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。让我们编译并运行以上程序,这将产生以下结果:

输出

F:\Workspace\Tester\test1.txt is executable: true
F:\Workspace\Tester\test2.txt is executable: false
java_files_io.htm
广告