Java 文件复制:字符流读取和写入示例

本文介绍了使用 Java 的字符流 (FileReader 和 FileWriter) 复制文件的两种方法,分别为:一次读取一个字符和一次读取一个字符数组。

一次读取一个字符的方式:

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

public class FileCopyDemo {
    public static void main(String[] args) {
        FileReader reader = null;
        FileWriter writer = null;
        try {
            reader = new FileReader('D:\word\a.txt');
            writer = new FileWriter('E:\word\a.txt');
            int c;
            while ((c = reader.read()) != -1) {
                writer.write(c);
            }
            System.out.println('文件复制成功!');
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

一次读取一个字符数组的方式:

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

public class FileCopyDemo {
    public static void main(String[] args) {
        FileReader reader = null;
        FileWriter writer = null;
        try {
            reader = new FileReader('D:\word\a.txt');
            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);
            }
            System.out.println('文件复制成功!');
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

代码解释:

  • FileReader: 用于读取字符输入流,从文件读取数据。
  • FileWriter: 用于写入字符输出流,将数据写入文件。
  • read() 方法: 一次读取一个字符。
  • read(char[] buffer) 方法: 一次读取多个字符到字符数组。
  • write() 方法: 写入一个字符。
  • write(char[] buffer, int offset, int length) 方法: 将字符数组中的部分数据写入文件。

注意:

  • 确保目标文件路径存在,否则复制操作会失败。
  • 使用 try-catch-finally 语句处理异常,确保资源及时关闭。
  • 可以根据实际需求调整字符数组大小 (buffer) 来优化性能。

通过以上两种方法,您可以根据实际需求选择合适的字符流方式进行文件复制操作。

Java 文件复制:字符流读取和写入示例

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

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