使用 CRUD 操作在 Java 中进行文件处理

javaobject oriented programmingprogramming更新于 2024/11/3 12:28:17

文件处理是编程的一个基本方面,它允许我们将其与存储在计算机上的文件相关联。在 Java 中,文件处理通过文件类和其他操作(统称为 CRUD(创建、读取、更新、删除)操作)变得方便。在本文中,我们将研究在 Java 中执行文件处理的不同方法,每种方法都宣传其声明首选项并使用实例。

语法

在深入了解文件操作的不同方法后,让我们熟悉一下在 Java 中创建文件的基本语言结构 -

File file = new File("path/to/file.txt");

语法说明

要开始使用 Java 进行文件处理,我们应该使用秒表标记基本类。 Record 类允许我们通过将文件的路径作为参数来创建与记录关联的事件。一旦我们有了记录请求,我们就可以执行不同的操作,如读取、写入、更新和删除文件。

方法 1:使用 FileReader 和 FileWriter

算法

  • 创建一个 FileReader 对象以从现有文件中读取。

  • 创建一个 FileWriter 对象以写入文件。

  • 使用循环从输入文件读取并写入输出文件,直到到达文件末尾。

  • 关闭 FileReader 和 FileWriter 对象以释放系统资源。

示例

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileHandler {
   public static void main(String[] args) {
      try {
         FileReader reader = new FileReader("input.txt");
         FileWriter writer = new FileWriter("output.txt");

         int character;
         while ((character = reader.read()) != -1) {
            writer.write(character);
         }

         reader.close();
         writer.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

输出

Hello, world! This is a sample text file used for testing the file handling code. It contains some random sentences and paragraphs. Feel free to modify and experiment with it as needed. Have a great day!

解释

在此方法中,我们使用 FileReader 类从现有记录中读取,并使用 FileWriter 类输入记录。我们创建 FileReader 和 FileWriter 对象,指定输入和输出记录名称,然后使用 while 循环检查输入记录中的字符并将其输入到输出记录中。最后,我们关闭 FileReader 和 FileWriter 对象以释放系统资源。

方法 2:使用 BufferedReader 和 BufferedWriter

算法

  • 创建一个 BufferedReader 对象以从现有文件中读取。

  • 创建一个 BufferedWriter 对象以写入文件。

  • 使用循环从输入文件读取并写入输出文件,直到到达文件末尾。

  • 关闭 BufferedReader 和 BufferedWriter 对象以释放系统资源。

示例

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileHandler {
   public static void main(String[] args) {
      try {
         BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
         BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));

         String line;
         while ((line = reader.readLine()) != null) {
            writer.write(line);
            writer.newLine();
         }

         reader.close();
         writer.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

输出

Hello, world! This is a sample text file used for testing the file handling code. It contains some random sentences and paragraphs. Feel free to modify and experiment with it as needed. Have a great day!

解释

在此方法中,我们使用 BufferedReader 类从现有记录中读取,并使用 BufferedWriter 类输入记录。我们创建 BufferedReader 和 BufferedWriter 对象,指定输入和输出记录名称,然后使用圆圈从输入记录中读取行并将它们写入输出记录。通过使用 readLine() 方法,可以更有效地处理文本输入。最后,我们关闭 BufferedReader 和 BufferedWriter 对象以释放系统资源。

方法 3:使用 FileInputStream 和 FileOutputStream

算法

  • 创建一个 FileInputStream 对象以从现有文件中读取。

  • 创建一个 FileOutputStream 对象以写入文件。

  • 使用循环从输入文件读取并写入输出文件,直到到达文件末尾。

  • 关闭 FileInputStream 和 FileOutputStream 对象以释放系统资源。

示例

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileHandler {
   public static void main(String[] args) {
      try {
         FileInputStream inputStream = new FileInputStream("input.txt");
         FileOutputStream outputStream = new FileOutputStream("output.txt");

         int bytesRead;
         byte[] buffer = new byte[1024];
         while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
         }

         inputStream.close();
         outputStream.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

输出

Hello, world! This is a sample text file used for testing the file handling code. It contains some random sentences and paragraphs. Feel free to modify and experiment with it as needed. Have a great day!

解释

在这里,我们使用 FileInputStream 从现有文件中读取,使用 FileOutputStream 输入文件。我们创建 FileInputStream 和 FileOutputStream 对象,指定输入和输出文件名称,然后使用一个圆圈从输入文件中读取字节并将它们输入到输出文件中。缓冲区对于高效读取和写入数据至关重要。最后,我们关闭 FileInputStream 和 FileOutputStream 对象以释放系统资源。

方法 4:使用 Files.copy() 和 Files.delete()

算法

  • 使用 Files.copy() 方法将内容从一个文件复制到另一个文件。

  • 使用 Files.delete() 方法删除文件。

示例

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileHandler {
   public static void main(String[] args) {
      try {
         Path source = Paths.get("input.txt");
         Path destination = Paths.get("output.txt");
         Files.copy(source, destination);

         Files.delete(source);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

输出

Hello, world! This is a sample text file used for testing the file handling code. It contains some random sentences and paragraphs. Feel free to modify and experiment with it as needed. Have a great day!

解释

在此方法中,我们使用 java.nio.file 包中的 Files 类来复制和删除文件。我们使用 Files 类指定源文件和目标文件路径,然后使用 copy() 方法将源文件的内容复制到目标文件。复制操作完成后,我们使用 delete() 方法删除源文件。此方法提供了一种简单有效的方法来执行文件复制和删除。

结论

文件管理是 Java 编程的一个基本部分,了解执行 CRUD 操作的不同方法可以极大地提高您处理文件的能力。在本文中,我们探讨了 Java 中四种文件管理方法,每种方法都有其各自的偏好和用例。通过使用 FileReader、FileWriter、BufferedReader、BufferedWriter、FileInputStream、FileOutputStream 和 Records 等类,我们能够轻松地在 Java 程序中创建、读取、更新和删除记录。使用这些方法进行测试将帮助您创建强大的记录处理功能,以满足您的特定应用程序需求。


相关文章


有用资源