一、File类
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成。File 类定义了一些方法来操作文件,如新建、删除、重命名文件和目录等。
1. File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类
2. File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
3. File它是文件和目录路径名的抽象表示,文件和目录是可以通过File封装成对象的,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。通过具体的操作把这个路径的内容转换为具体存在的.
方法名称 | 说明 |
File(String pathname) | 通过将给定的路径名,字符串转换为抽象路径名来创建新的File实例 |
File(String parent,String child) | 从父路径名,字符串和子路径名,字符串创建新的File实例 |
File(File parent,String child) | 从父抽象路径名和子路径名,字符串创建新的File实例 |
二、File类创建功能
方法名称 | 说明 |
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
public boolean mkdir() | 创建由此抽象路径名命名的目录 |
public boolean mkdirs() | 创建由此抽象路径命名的目录,包括任何必需但不存在的父目录 |
三、File类的判断方法
方法名称 | 说明 |
boolean isDirectory() | 判断是否是文件夹(目录) |
boolean isFile() | 判断是否是文件 |
boolean exists() | 判断文件是否存在 |
四、File类的获取方法
方法名称 | 说明 |
String getAbsolutePath() | 获取绝对路径 |
String getPath() | 获取抽象路径名转化路径名字符串 |
String getName() | 获取文件或文件夹的名称 |
String[] list() | 获取目录下所有内容,返回字符串数组 |
File[] listFiles() | 获取目录下的所有内容,返回File对象数组 |
五、绝对路径与相对路径
绝对路径与相对路径的区别:
1.绝对路径是指文件在硬盘上真正存在的路径。
2.相对路径是java工程中要访问的文件相对于当前文件的位置
六、File类的删除方法
方法名称 | 说明 |
boolean delete() | 如果删除路径是一个目录,不能够直接删除目录,需要先删除该目录中所有内容,最后在删除目录。如果删除路径是一个文件可以直接删除。 |
七、案例
7.1 创建和删除文件
File 类不仅可以获取已知文件的属性信息,还可以在指定路径创建文件,以及删除一个文件。创建文件需要调用 createNewFile() 方法,删除文件需要调用 delete() 方法。无论是创建还是删除文件通常都先调用 exists() 方法判断文件是否存在。
import java.io.File;
import java.io.IOException;
public class Test03 {
public static void main(String[] args) throws IOException {
File f = new File("e:\\a.txt"); // 创建指向文件的File对象
if (f.exists()) // 判断文件是否存在
{
f.delete(); // 存在则先删除
}
f.createNewFile(); // 再创建
}
}
7.2 创建和删除目录
import java.io.File;
public class Test04 {
public static void main(String[] args) {
String path = "e:/myconfig/java/def/"; // 指定目录位置
File f = new File(path); // 创建File对象
if (f.exists()) {
f.delete();
}
//f.mkdir(); // 创建单个目录目录
f.mkdirs(); //创建多级目录
}
}
7.3 遍历目录
通过递归迭代
package a01_file;
import java.io.File;
public class FileTest2 {
public static void main(String[] args) {
File file = new File("C:\\sources\\JAVASE");
rec(file);
}
public static void rec(File file){
if(file.isFile()){
System.out.println(file.getAbsolutePath());
}
if(file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
rec(f);
}
}
}
}
八、总结
File类是Java中提供的用于操作文件和目录的类。它在java.io包中。
File类可以用来创建、删除、重命名以及查询文件和目录的信息。下面是File类的一些常用方法:
1. 构造方法:File类有多个构造方法,可以通过文件路径字符串或者父目录和子目录两个参数来创建一个File对象。
2. 创建文件或目录:可以使用createNewFile()方法来创建一个新的空文件,使用mkdir()方法来创建一个新的空目录,使用mkdirs()方法可以创建一个多级目录。
3. 文件属性查询:可以使用exists()方法来判断文件是否存在,使用isFile()方法来判断是否是文件,使用isDirectory()方法来判断是否是目录,使用canRead()和canWrite()方法来判断是否可读和可写。
4. 获取文件信息:可以使用getName()方法获取文件或目录的名称,使用getAbsolutePath()方法获取文件或目录的绝对路径,使用getParent()方法获取父目录的路径,使用length()方法获取文件的大小。
5. 文件操作:可以使用delete()方法删除文件或目录,使用renameTo()方法重命名文件或目录。
6. 目录遍历:可以使用list()方法返回目录下的所有文件和目录的名称数组,使用listFiles()方法返回目录下的所有文件和目录的File对象数组。
7. 文件输入输出:可以使用FileInputStream和FileOutputStream等类来进行文件的读取和写入操作。
需要注意的是,File类只是用来表示文件和目录的路径信息,它并不提供文件内容的读写功能。如果需要对文件内容进行读写操作,可以使用其他IO类或者NIO类库。
方法描述 |
public String getName() |
public String getParent() |
public File getParentFile() |
public String getPath() |
public boolean isAbsolute() |
public String getAbsolutePath() |
public boolean exists() |
public boolean isDirectory() |
public boolean isFile() |
public long length() |
public boolean createNewFile() throws IOException |
public boolean delete() |
public void deleteOnExit() |
public String[] list() |
public File[] listFiles() |
public boolean mkdir() |
public boolean mkdirs() |