跳到主要内容

Java File 类

提示
  1. 文件和目录操作java.io.File 类用于在 Java 中执行文件和目录的各种操作,如创建、读取、写入和删除文件。
  2. 创建和使用 File 对象:创建 File 对象不会创建物理文件,而是提供了一个与文件或目录路径名相关联的抽象表示。
  3. 文件操作方法File 类提供了多种方法,如 createNewFile() 创建文件,FileReaderFileWriter 分别用于读取和写入文件内容,以及 delete() 用于删除文件或空目录。

java.io 包中的 File 类用于对文件和目录执行各种操作。

还有一个名为 java.nio 的包,也可用于处理文件。然而,在本教程中,我们将重点介绍 java.io 包。

文件和目录

文件是一个命名的位置,可用于存储相关信息。例如,

main.java 是一个 Java 文件,包含了有关 Java 程序的信息。

目录是文件和子目录的集合。目录中的目录称为子目录。

创建 Java 文件对象

要创建 File 的对象,我们首先需要导入 java.io.File 包。导入包后,这是我们创建文件对象的方式。

// 使用路径创建 File 的对象
File file = new File(String pathName);

在这里,我们创建了一个名为 file 的文件对象。该对象可用于处理文件和目录。

注意:在 Java 中,创建文件对象并不意味着创建文件。相反,文件对象是文件或目录路径名(在括号中指定)的抽象表示。

Java 文件操作方法

操作方法
创建文件createNewFile()java.io.File
读取文件read()java.io.FileReader
写入文件write()java.io.FileWriter
删除文件delete()java.io.File

Java 创建文件

要创建新文件,我们可以使用 createNewFile() 方法。它返回

  • true,如果创建了新文件。
  • false,如果文件已经存在于指定位置。

示例:创建一个新文件

// 导入 File 类
import java.io.File;

class Main {
public static void main(String[] args) {

// 为当前位置创建一个文件对象
File file = new File("newFile.txt");

try {

// 尝试基于对象创建文件
boolean value = file.createNewFile();
if (value) {
System.out.println("新文件已创建。");
}
else {
System.out.println("文件已存在。");
}
}
catch(Exception e) {
e.getStackTrace();
}
}
}

在上面的示例中,我们创建了一个名为 file 的文件对象。该文件对象与指定的文件路径相连。

File file = new File("newFile.txt");

在这里,我们使用文件对象创建了新文件,并指定了路径。

如果 newFile.txt 在当前位置不存在,则创建该文件并显示此消息。

新文件已创建。

然而,如果 newFile.txt 已经存在,我们将看到这条消息。

文件已存在。

Java 读取文件

要从文件中读取数据,我们可以使用 InputStreamReader 的子类。

示例:使用 FileReader 读取文件

假设我们有一个名为 input.txt 的文件,其中包含以下内容。

这是文件中的一行文本。

现在让我们尝试使用 Java FileReader 读取该文件。

// 导入 FileReader 类
import java.io.FileReader;

class Main {
public static void main(String[] args) {

char[] array = new char[100];
try {
// 使用 FileReader 创建一个读取器
FileReader input = new FileReader("input.txt");

// 读取字符
input.read(array);
System.out.println("文件中的数据:");
System.out.println(array);

// 关闭读取器
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}

输出

文件中的数据:
这是文件内的一行文本。

在上述示例中,我们创建了一个名为 input 的 FileReader 对象。它现在与 input.txt 文件关联。

FileReader input = new FileReader("input.txt");

为了从 input.txt 文件中读取数据,我们使用了 FileReader 的 read() 方法。

Java 写入文件

要向文件中写入数据,我们可以使用 OutputStreamWriter 的子类。

示例:使用 FileWriter 写入文件

// 导入 FileWriter 类
import java.io.FileWriter;

class Main {
public static void main(String args[]) {

String data = "这是输出文件中的数据";
try {
// 使用 FileWriter 创建一个写入器
FileWriter output = new FileWriter("output.txt");

// 将字符串写入文件
output.write(data);
System.out.println("数据已写入文件。");

// 关闭写入器
output.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}

**输出 **

数据已写入文件。

在上述示例中,我们使用 FileWriter 类创建了一个写入器。写入器与 output.txt 文件关联。

FileWriter output = new FileWriter("output.txt");

为了向文件中写入数据,我们使用了 write() 方法。

当我们运行程序时,output.txt 文件将被填充以下内容。

这是输出文件中的数据。

Java 删除文件

我们可以使用 File 类的 delete() 方法删除指定的文件或目录。它返回

  • true,如果文件被删除。
  • false,如果文件不存在。

注意:我们只能删除空目录。

示例:删除文件

import java.io.File;

class Main {
public static void main(String[] args) {

// 创建一个文件对象
File file = new File("file.txt");

// 删除文件
boolean value = file.delete();
if(value) {
System.out.println("文件已删除。");
}
else {
System.out.println("文件未删除。");
}
}
}

输出

文件已删除。

在上述示例中,我们创建了一个名为 file 的 File 对象。该文件现在保存了指定文件的信息。

File file = new File("file.txt");

在这里,我们使用了 delete() 方法来删除对象指定的文件。