欢迎光临
我们一直在努力

Java里面的缓冲流

一、字符缓冲流(只用于文本文件)

适用: .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();
}
}

}

重点:

  • 字符缓冲流: BufferedReader / BufferedWriter → 仅文本文件,按行读写,效率高
  • 字节缓冲流: BufferedInputStream / BufferedOutputStream → 万能,所有文件都能复制
  • 代码使用 try-with-resources,自动关流,简洁标准
  • 赞(0)
    未经允许不得转载:171主机测评 » Java里面的缓冲流
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址