Java File类

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

File对象表示磁盘上的实际文件/目录。以下是创建File对象的构造函数列表。

编号 构造函数 描述
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实例。

当创建了File对象,就可以使用一些操作文件的辅助方法,如下所示 -

编号 方法 描述
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() 测试此抽象路径名表示的文件是否为普通文件。 当且仅当此抽象路径名表示的文件存在且是普通文件时,才返回true; 否则返回false
12 public long lastModified() 返回上次修改此抽象路径名表示的文件的时间。 返回表示文件上次修改时间的long值,以纪元(1970年1月1日格林威治标准时间00:00:00)为单位,以毫秒为单位,如果文件不存在或发生I/O错误,则返回0L
13 public long length() 返回此抽象路径名表示的文件的长度。 如果此路径名表示目录,则返回值未指定。
14 public boolean createNewFile() throws IOException 当且仅当具有此名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新空文件。 如果指定的文件不存在且成功创建,则返回true;否则返回false。 如果指定的文件已存在,则返回false
15 public boolean delete() 删除此抽象路径名表示的文件或目录。 如果此路径名表示目录,则该目录必须为空才能被删除。 当且仅当文件或目录被成功删除时返回true; 否则返回false
16 public void deleteOnExit() 请求在虚拟机终止时删除此抽象路径名表示的文件或目录。
17 public String[] list() 返回一个字符串数组,表示此抽象路径名表示的目录中的文件和目录。
18 public String[] list(FilenameFilter filter) 返回一个字符串数组,表示此抽象路径名表示的目录中的文件和目录,以满足指定的过滤器。
19 public File[] listFiles() 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。
20 public File[] listFiles(FileFilter filter) 返回一个抽象路径名数组,表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
21 public boolean mkdir() 创建此抽象路径名指定的目录。当且仅当目录已创建时返回true; 否则返回false
22 public boolean mkdirs() 创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。 当且仅当创建目录时才返回true,否则返回false
23 public boolean renameTo(File dest) 重命名此抽象路径名表示的文件。 当且仅当重命名成功时返回true; 否则返回false
24 public boolean setLastModified(long time) 设置此抽象路径名指定的文件或目录的上次修改时间。 当且仅当操作成功时返回true; 否则返回false
25 public boolean setReadOnly() 标记此抽象路径名指定的文件或目录,以便仅允许读取操作。当且仅当操作成功时返回true; 否则返回false
26 public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。返回表示新创建的空文件的抽象路径名。
27 public static File createTempFile(String prefix, String suffix) throws IOException 在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。调用此方法相当于调用createTempFile(prefix,suffix,null)。 返回表示新创建的空文件的抽象路径名。
28 public int compareTo(File pathname) 按字典顺序比较两个抽象路径名。 如果参数等于此抽象路径名,则返回0;如果此抽象路径名按字典顺序小于参数,则返回小于0;如果此抽象路径名按字典顺序大于参数,则返回大于0的值。
29 public int compareTo(Object o) 将此抽象路径名与另一个对象进行比较。 如果参数等于此抽象路径名,则返回零;如果此抽象路径名按字典顺序小于参数,则返回小于零;如果此抽象路径名按字典顺序大于参数,则返回大于零的值。
30 public boolean equals(Object obj) 测试此抽象路径名与给定对象的相等性。 当且仅当参数不为null并且是表示与此抽象路径名相同的文件或目录的抽象路径名时,返回true
31 public String toString() 返回此抽象路径名的路径名字符串。它也是getPath()方法返回的字符串。

示例

下面演示如何使用File对象 -

import java.io.File;

public class FileDemo {

   public static void main(String[] args) {
      File f = null;
      String[] strs = {"test1.txt", "test2.txt"};
      try {
         // 字符串数组中的每个字符串
         for(String s:strs ) {
            // 创建每一个File对象
            f = new File(s);

            // 如果文件是可执行的,则返回 true
            boolean bool = f.canExecute();

            // 查找绝对路径
            String a = f.getAbsolutePath(); 

            // 打印绝对路径
            System.out.print(a);

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

假设有一个可执行文件:test1.txt,另一个文件test2.txt在当前目录中是不可执行的。 那么编译并运行上面的程序,将产生以下结果 -

/home/zaixian/javaworksp/test1.txt is executable: true
/home/zaixian/javaworksp/test2.txt is executable: false

上一篇: Java文件和输入和输出(I/O) 下一篇: Java快速入门