File Class
Java File类以抽象方式表示文件和目录路径名。 该类用于创建文件和目录,文件搜索,文件删除等。
File对象表示磁盘上的实际文件/目录。 以下是创建File对象的构造函数列表。
Sr.No. | 方法和描述 |
---|---|
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对象,就会有一个辅助方法列表,可用于操作文件。
Sr.No. | 方法和描述 |
---|---|
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; 否则是假的。 |
8 | public boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。 当且仅当文件系统实际包含由此抽象路径名表示的文件且允许应用程序写入文件时,才返回true; 否则是假的。 |
9 | public boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 当且仅当此抽象路径名表示的文件或目录存在时,才返回true; 否则是假的。 |
10 | public boolean isDirectory() 测试此抽象路径名表示的文件是否为目录。 当且仅当此抽象路径名表示的文件存在且为目录时,返回true; 否则是假的。 |
11 | public boolean isFile() 测试此抽象路径名表示的文件是否为普通文件。 如果文件不是目录,则该文件是正常的,此外,它还满足其他系统相关标准。 由Java应用程序创建的任何非目录文件都保证是普通文件。 当且仅当此抽象路径名表示的文件存在并且是普通文件时,才返回true; 否则是假的。 |
12 | public long lastModified() 返回上次修改此抽象路径名表示的文件的时间。 返回表示文件上次修改时间的长值,以纪元(1970年1月1日格林威治标准时间00:00:00)为单位,以毫秒为单位,如果文件不存在或发生I/O错误,则返回0L。 |
13 | public long length() 返回此抽象路径名表示的文件的长度。 如果此路径名表示目录,则返回值未指定。 |
14 | public boolean createNewFile() throws IOException 当且仅当具有此名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新空文件。 如果指定的文件不存在且成功创建,则返回true;否则返回true。 如果指定的文件已存在,则返回false。 |
15 | public boolean delete() 删除此抽象路径名表示的文件或目录。 如果此路径名表示目录,则该目录必须为空才能被删除。 当且仅当文件或目录被成功删除时返回true; 否则是假的。 |
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() 创建此抽象路径名指定的目录。 当且仅当目录被创建时返回true; 否则是假的。 |
23 | public boolean mkdirs() 创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。 当且仅当创建目录时才返回true,以及所有必需的父目录; 否则是假的。 |
24 | public boolean renameTo(File dest) 重命名此抽象路径名表示的文件。 当且仅当重命名成功时返回true; 否则是假的。 |
25 | public boolean setLastModified(long time) 设置此抽象路径名指定的文件或目录的上次修改时间。 当且仅当操作成功时返回true; 否则是假的。 |
26 | public boolean setReadOnly() 标记此抽象路径名指定的文件或目录,以便仅允许读取操作。 当且仅当操作成功时返回true; 否则是假的。 |
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) 测试此抽象路径名与给定对象的相等性。 当且仅当参数不为null并且是表示与此抽象路径名相同的文件或目录的抽象路径名时,返回true。 |
32 | public String toString() 返回此抽象路径名的路径名字符串。 这只是getPath()方法返回的字符串。 |
例子 (Example)
以下是演示File对象的示例 -
package com.iowiki;
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