Java 文件复制:字符缓冲流实现 - 一次读取一个字符和一个字符数组

本文将介绍如何使用 Java 中的字符缓冲流(BufferedReader 和 BufferedWriter)实现文件复制。我们将演示两种方法:

  1. 一次读取一个字符的方式:
import java.io.*;

public class CopyFile {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader('D:\word\a.txt'));
             BufferedWriter writer = new BufferedWriter(new FileWriter('E:\word\a.txt'))) {

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

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 一次读取一个字符数组的方式:
import java.io.*;

public class CopyFile {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader('D:\word\a.txt'));
             BufferedWriter writer = new BufferedWriter(new FileWriter('E:\word\a.txt'))) {

            char[] buffer = new char[1024];
            int len;
            while ((len = reader.read(buffer)) != -1) {
                writer.write(buffer, 0, len);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

解释:

  • BufferedReader 和 BufferedWriter: 这些类提供了高效的字符读取和写入操作,它们使用缓冲区来减少磁盘访问的次数,从而提高性能。
  • 一次读取一个字符: 该方法每次从输入流中读取一个字符,然后将其写入输出流。这是一种简单的方法,但对于大型文件来说可能效率较低。
  • 一次读取一个字符数组: 该方法每次从输入流中读取一个字符数组,然后将其写入输出流。这比一次读取一个字符更有效,因为它可以减少磁盘访问的次数。

注意:

  • 以上代码示例假设文件 D:\word\a.txt 存在,并且您希望将其复制到 E:\word\a.txt。您需要根据实际情况修改文件路径。
  • 文件复制操作可能会覆盖目标文件中的现有内容。
  • 为了提高代码的可读性和可维护性,建议您使用 try-with-resources 语句自动关闭流,如代码示例所示。

更多资源:

Java 文件复制:字符缓冲流实现 - 一次读取一个字符和一个字符数组

原文地址: https://www.cveoy.top/t/topic/ok9w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录