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) 该构造函数通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 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() 测试指定抽象路径名所表示的文件是否为普通文件。如果文件不是目录,并且满足其他系统相关的标准,则表示文件为普通文件。由Java应用程序创建的任何非目录文件均保证为普通文件。如果指定抽象路径名所表示的文件存在且为普通文件,则返回true;否则返回false。 |
12 | public long lastModified() 返回表示由此抽象路径名表示的文件上次修改时间的毫秒数。如果文件不存在或发生I/O错误,返回0L。返回值表示自1970年1月1日格林威治时间(00:00:00 GMT)以来文件的最后修改时间。 |
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() 创建由此抽象路径名命名的目录。如果目录创建成功,则返回true;否则返回false。 |
23 | public boolean mkdirs() 创建由此抽象路径名指定的目录,包括所需但不存在的父目录。如果目录已经创建,并且所有必需的父目录也已经创建,则返回true;否则返回false。 |
24 | public boolean renameTo(File dest) 重命名由此抽象路径名指定的文件。如果重命名成功,则返回true;否则返回false。 |
25 | public boolean setLastModified(long time) 设置由此抽象路径名指定的文件或目录的最后修改时间。如果操作成功,则返回true;否则返回false。 |
26 | public boolean setReadOnly() 将由此抽象路径名指定的文件或目录标记为只允许读取操作。如果操作成功,则返回true;否则返回false。 |
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) 以字典顺序比较两个抽象路径名。如果参数等于此抽象路径名,则返回0;如果此抽象路径名按字典顺序小于参数,则返回小于0的值;如果此抽象路径名按字典顺序大于参数,则返回大于0的值。 |
30 | public int compareTo(Object o) 将此抽象路径名与另一个对象进行比较。如果参数等于此抽象路径名,则返回0;如果此抽象路径名按字典顺序小于参数,则返回小于0的值;如果此抽象路径名按字典顺序大于参数,则返回大于0的值。 |
31 | public boolean equals(Object obj) 测试给定的对象是否与此抽象路径名相等。只有在参数不为null并且是表示与该抽象路径名相同文件或目录的抽象路径名时,才返回true。 |
32 | public String toString() 返回此抽象路径名的路径名字符串。这只是由getPath()方法返回的字符串。 |
示例
以下是一个示例,展示了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是不可执行的。让我们编译和运行上面的程序,这将产生以下结果 –
/home/cg/root/2880380/test1.txt is executable: false
/home/cg/root/2880380/test2.txt is executable: false