Java 文件复制:字符缓冲流实现 - 一次读取一个字符和一个字符数组
Java 文件复制:字符缓冲流实现 - 一次读取一个字符和一个字符数组
本文将介绍如何使用 Java 中的字符缓冲流(BufferedReader 和 BufferedWriter)实现文件复制。我们将演示两种方法:
- 一次读取一个字符的方式:
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();
}
}
}
- 一次读取一个字符数组的方式:
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 语句自动关闭流,如代码示例所示。
更多资源:
原文地址: https://www.cveoy.top/t/topic/ok9w 著作权归作者所有。请勿转载和采集!