原文: https://www.programiz.com/java-programming/file

在本教程中,我们将借助示例学习 Java File及其各种操作。

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

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


文件和目录

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

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

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


创建一个 Java 文件对象

要创建File的对象,我们需要首先导入java.io.File包。 导入包后,就可以创建文件对象。

  1. // creates an object of File using the path
  2. 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如果文件已存在于指定位置。

示例:创建一个新文件

  1. // importing the File class
  2. import java.io.File;
  3. class Main {
  4. public static void main(String[] args) {
  5. // create a file object for the current location
  6. File file = new File("newFile.txt");
  7. try {
  8. // trying to create a file based on the object
  9. boolean value = file.createNewFile();
  10. if (value) {
  11. System.out.println("The new file is created.");
  12. }
  13. else {
  14. System.out.println("The file already exists.");
  15. }
  16. }
  17. catch(Exception e) {
  18. e.getStackTrace();
  19. }
  20. }
  21. }

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

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

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

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

  1. The new file is created.

但是,如果newFile.txt已经存在,我们将看到此消息。

  1. The file already exists.

Java 读取文件

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

示例:使用FileReader读取文件

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

  1. This is a line of text inside the file.

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

  1. // importing the FileReader class
  2. import java.io.FileReader;
  3. class Main {
  4. public static void main(String[] args) {
  5. char[] array = new char[100];
  6. try {
  7. // Creates a reader using the FileReader
  8. FileReader input = new FileReader("input.txt");
  9. // Reads characters
  10. input.read(array);
  11. System.out.println("Data in the file:");
  12. System.out.println(array);
  13. // Closes the reader
  14. input.close();
  15. }
  16. catch(Exception e) {
  17. e.getStackTrace();
  18. }
  19. }
  20. }

输出

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

在上面的示例中,我们使用了创建FileReader的名为input的对象。 现在,它已与input.txt文件链接。

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

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


Java 写入文件

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

示例:使用FileWriter写入文件

// importing the FileWriter class
import java.io.FileWriter;

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

     String data = "This is the data in the output file";
     try {
       // Creates a Writer using FileWriter
       FileWriter output = new FileWriter("output.txt");

       // Writes string to the file
       output.write(data);
       System.out.println("Data is written to the file.");

       // Closes the writer
       output.close();
     }
     catch (Exception e) {
       e.getStackTrace();
     }
  }
}

输出

Data is written to the file.

在上面的示例中,我们使用FileWriter类创建了一个writer。 写入器与output.txt文件链接。

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

要将数据写入文件,我们使用了write()方法.

在这里,当我们运行程序时,output.txt文件填充了以下内容。

This is the data in the output file.

Java 删除文件

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

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

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

示例:删除文件

import java.io.File;

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.

在上面的示例中,我们创建了一个名为fileFile对象。 该文件现在包含有关指定文件的信息。

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

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

相关示例