Java File 类以抽象方式表示文件和目录路径名。该类用于创建文件和目录、文件查找、文件删除等。
File对象代表磁盘上实际的文件/目录。以下是创建 File 对象的构造函数列表。
序号 | 方法及说明 |
---|---|
1 | File(File Parent, String child) 此构造函数根据父抽象路径名和子路径名字符串创建一个新的 File 实例。 |
1 | File(String pathname) 此构造函数通过转换创建一个新的 File 实例将给定路径名字符串转换为抽象路径名。 |
1 | File(Stringparent, String child) 此构造函数从父路径名字符串和子路径名字符串创建一个新的 File 实例。 |
1 | File(URI uri) 此构造函数通过将给定的 file: 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 contains() 测试此抽象路径名表示的文件或目录是否存在。当且仅当此抽象路径名表示的文件或目录存在时返回 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 GMT)以来的毫秒为单位测量,如果文件不存在或发生 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) 返回一个字符串数组,命名此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
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) 按字典顺序比较两个抽象路径名。如果参数等于此抽象路径名,则返回零;如果此抽象路径名按字典顺序小于参数,则返回小于零的值;如果此抽象路径名按字典顺序大于参数,则返回大于零的值。 |
29 | public intcompareTo(Object o) 将此抽象路径名与另一个对象进行比较。如果参数等于此抽象路径名,则返回零;如果此抽象路径名按字典顺序小于参数,则返回小于零的值;如果此抽象路径名按字典顺序大于参数,则返回大于零的值。 |
30 | public boolean equals(Object obj) 测试此抽象路径名是否与给定对象相等。当且仅当参数不为 null 并且是表示与此抽象路径名相同的文件或目录的抽象路径名时,返回 true。 |
31 | public String toString() 返回此抽象路径名的路径名字符串。这只是 getPath() 方法返回的字符串。 |
示例
下面是一个示例来演示文件对象
package com.yxjc123;
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 ) {
//创建新文件
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) {
//如果发生任何I/O错误
e.printStackTrace();
}
}
}
假设当前目录中有一个可执行文件test1.txt,另一个文件test2.txt不可执行。让我们编译并运行上面的程序,这将产生以下结果
输出
/home/cg/root/2880380/test1.txt is executable: false
/home/cg/root/2880380/test2.txt is executable: false