Java 文件复制:字符流实现 (一次读取一个字符和字符数组)

本文将演示如何使用 Java 的文件字符输入流和输出流将文件 D:\word\a.txt 复制到 E:\word\a.txt。 我们将使用两种方法来实现:

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

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

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

            reader.close();
            writer.close();
            System.out.println("文件复制成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 一次读取一个字符数组的方式:
import java.io.*;

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

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

            reader.close();
            writer.close();
            System.out.println("文件复制成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

解释:

  • FileReader 和 FileWriter 用于创建文件输入流和输出流。
  • read() 方法用于从输入流中读取一个字符,返回字符的 ASCII 码,如果遇到文件末尾则返回 -1。
  • write() 方法用于将字符写入输出流。
  • read(char[] buffer) 方法用于从输入流中读取一个字符数组,返回读取的字符数,如果遇到文件末尾则返回 -1。
  • write(char[] buffer, int start, int len) 方法用于将字符数组中的部分内容写入输出流,start 表示开始位置,len 表示写入的字符数。

总结:

通过使用 Java 的文件字符流,我们可以方便地实现文件复制操作。 两种方式各有优劣,选择哪种方式取决于具体情况。 一般情况下,一次读取一个字符数组的方式效率更高。

Java 文件复制:字符流实现 (一次读取一个字符和字符数组)

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

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