用java编写程序,使用FileReader和FileWriter及缓冲流完成对某个文件的复制。(如将file1.txt的内容复制给file2.txt)
时间: 2024-02-28 16:54:17 浏览: 18
好的,以下是 Java 代码实现:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
String srcFile = "file1.txt"; // 源文件名
String destFile = "file2.txt"; // 目标文件名
int bufferSize = 1024; // 缓冲区大小,可根据实际情况调整
try (FileReader reader = new FileReader(srcFile);
BufferedReader br = new BufferedReader(reader);
FileWriter writer = new FileWriter(destFile);
BufferedWriter bw = new BufferedWriter(writer)) {
char[] buffer = new char[bufferSize]; // 缓冲区,用于存储读取的数据
int len = 0; // 记录每次读取的字符数
while ((len = br.read(buffer)) != -1) {
bw.write(buffer, 0, len); // 将读取的数据写入目标文件
}
System.out.println("文件复制完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们使用了 `FileReader` 和 `FileWriter` 类来分别读取源文件和写入目标文件,使用了 `BufferedReader` 和 `BufferedWriter` 类来分别缓存读取和写入的数据。具体来说,我们在读取源文件时,每次读取指定长度的字符到缓冲区中,再将缓冲区中的数据写入目标文件;在写入目标文件时,每次写入指定长度的字符,直到写完所有数据。需要注意的是,我们在使用缓冲流时,要及时调用 `flush()` 方法或者关闭流,以确保缓冲区中的数据被写入文件。