一、字符缓冲流(只用于文本文件)
适用: .txt 、 .java 等纯文本,不能复制图片/视频/压缩包
代码例子:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TextCopy {
public static void main(String[] args) {
// 源文件、目标文件路径
String src = “a.txt”;
String dest = “b.txt”;
try (BufferedReader br = new BufferedReader(new FileReader(src));
BufferedWriter bw = new BufferedWriter(new FileWriter(dest))) {
String line;
// 按行读取、写入(字符缓冲流常用方式)
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine(); // 换行
}
System.out.println("文本文件复制完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、字节缓冲流(万能复制,任意文件)
适用:文本、图片、视频、音频、exe、压缩包等所有文件
例子代码:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AnyFileCopy {
public static void main(String[] args) {
String src = “test.jpg”;
String dest = “copy.jpg”;
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest))) {
byte[] buf = new byte[1024]; // 缓冲区数组
int len;
// 循环读写
while ((len = bis.read(buf)) != -1) {
bos.write(buf, 0, len);
}
System.out.println("任意文件复制完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
重点:





