Java 文件操作

File 类用于对文件和目录执行各种操作。在本教程中,我们将通过示例了解 Java File 类及其各种操作。

在本教程中,我们将通过示例了解 Java File 类及其各种操作。

java.io 包的 File 类用于对文件和目录执行各种操作。还有另一个 java.nio 的包也可用于处理文件。但是,在本教程中,我们将重点介绍 java.io 包。

文件和目录

文件是在存储中保存数据内容的单个实体,目录则是多个文件的集合。目录中可以包含子目录。

创建 Java 文件对象

File 类位于 java.io 包。要创建一个文件对象,只需要在 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

创建文件

我们可以使用 createNewFile() 方法创建一个新文件。它返回一个布尔值:

  • 如果创建了一个新文件,返回 true
  • 如果文件已存在,返回 false

示例:创建一个新文件

import java.io.File;

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

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

    try {
      // 尝试创建文件
      boolean value = file.createNewFile();
      if (value) {
        System.out.println("The new file is created.");
      }
      else {
        System.out.println("The file already exists.");
      }
    } catch(Exception e) {
      e.getStackTrace();
    }
  }
}

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

如果当前位置中不存在 newFile.txt 文件,则会创建该文件并显示以下消息:

The new file is created.

但是,如果已经存在 newFile.txt 文件,我们将看到以下消息:

The file already exists.

读取文件

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

示例:使用 FileReader 读取文件

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

This is a line of text inside the file.

现在让我们尝试使用 FileReader 读取文件中的内容。

import java.io.FileReader;

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

    char[] array = new char[100];
    try {
      // 创建 Reader 对象
      FileReader input = new FileReader("input.txt");

      // 读取字符
      input.read(array);
      System.out.println("Data in the file: ");
      System.out.println(array);

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

输出

Data in the file: This is a line of text inside the file.

在上面的例子中,我们创建了一个名为 input 的 FileReader 对象,它连接了 input.txt 文件。如下:

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

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

写入文件

要将数据写入文件,我们可以使用 OutputStream的子类或 Writer的子类。

示例:使用 FileWriter 写入文件

import java.io.FileWriter;

class Main {
  public static void main(String args[]) {
    String data = "This is the data in the output file";
    try {
      // 创建 Writer 对象
      FileWriter output = new FileWriter("output.txt");
      // 写字符串到文件中
      output.write(data);
      System.out.println("Data is written to the file.");
      // 关闭
      output.close();
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

输出

Data is written to the file.

在上面的示例中,我们使用了 write() 方法将数据写入了文件。

这里当我们运行程序后, output.txt 文件中内容如下:

This is the data in the output file.

删除文件

我们可以使用 delete() 方法删除指定的文件或目录。它返回一个布尔值:

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

!! 注意:如果要删除目录,此方法只能删除空目录。

示例:删除文件

import java.io.File;

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

    // creates a file object
    File file = new File("file.txt");

    // deletes the file
    boolean value = file.delete();
    if(value) {
      System.out.println("The File is deleted.");
    } else {
      System.out.println("The File is not deleted.");
    }
  }
}

输出

The File is deleted.

在上面的例子中,我们创建了一个名为 file 的文件对象,它连接了指定的文件。

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