news 2026/6/2 1:28:08

Java 文件复制终极指南:文本用字符缓冲流,其他用字节缓冲流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 文件复制终极指南:文本用字符缓冲流,其他用字节缓冲流

一、场景说明

文本文件复制 字符流(FileReader/Writer) + 缓冲流(BufferedReader/Writer)
任意文件复制(图片、视频等)→ 字节流(FileInputStream/OutputStream) + 缓冲流

3.1 原理讲解
  • 字节流:处理所有文件(图片、音频、视频、文本)

  • 字符流:只处理文本文件,且能处理字符编码(UTF-8、GBK)

  • 缓冲流:减少磁盘 I/O 次数,性能提升显著

3.2 文本文件复制(字符缓冲流)

public static void copyTextFile(String src, String dest) {
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(); // 注意跨平台换行
}
} catch (IOException e) {
e.printStackTrace();
}
}

  • 强调readLine()newLine()的配合

  • 说明FileReader使用默认编码(建议指定编码:new InputStreamReader(new FileInputStream(src), "UTF-8")

3.3 任意文件复制(字节缓冲流)

public static void copyBinaryFile(String src, String dest) {
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest))) {
byte[] buffer = new byte[8192]; // 8KB 缓冲区
int len;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}

  • 解释字节缓冲流的内部默认缓存(8KB)

  • 对比不使用缓冲流(单字节读写)的极低效率

3.4 性能对比实验(可选,增加说服力)
  • 复制一个 100MB 文件:无缓冲流 → 可能几十秒;有缓冲流 → 不到 1 秒

  • 可附上测试代码和结果截图

3.5 异常处理与资源关闭(重点)
  • 旧写法:finally中关闭流,很繁琐

  • 新写法:try-with-resources(Java 7+),自动关闭

  • 强调顺序:先打开的后关闭,但 try 块中自动处理正确顺序

3.6 总结与扩展
  • 字符流专门处理文本,字节流万能

  • 始终使用缓冲流包装底层流

  • 扩展:Files.copy()工具类(NIO 方式,更简洁)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 1:28:06

ASM232S电气特性与TIA/EIA-232-F及ITU V.28标准符合性深度分析

引言在串行通信物理层标准的演进历程中,TIA/EIA-232-F(以下简称RS-232-F)与ITU V.28共同定义了非平衡电压接口的电气特性,包括信号电平、阻抗匹配、压摆率及噪声容限等核心参数。对于航天及特种工业应用而言,标准符合性…

作者头像 李华
网站建设 2026/6/2 1:26:58

量子优化算法:从QUBO到HUBO的进阶之路

1. 量子优化算法中的高阶表示革命在量子计算领域,组合优化问题一直被视为量子优势最可能率先展现的战场。作为这一领域的核心算法,量子近似优化算法(QAOA)近年来在解决NP难问题上展现出独特潜力。然而,传统二次无约束二…

作者头像 李华
网站建设 2026/6/2 1:26:55

企业交换机OSPF路由协议配置与防护

企业交换机OSPF路由协议配置与防护 上机练习讲义(Cisco设备版) 一、实验目的 掌握Cisco交换机、防火墙基础接口与VLAN配置方法熟练配置OSPF协议,实现企业多设备路由互通掌握OSPF MD5加密认证配置,提升路由协议安全性能通过命令…

作者头像 李华
网站建设 2026/6/2 1:22:59

抖音批量下载神器:3分钟搞定视频、合集、主页全量采集

抖音批量下载神器:3分钟搞定视频、合集、主页全量采集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…

作者头像 李华
网站建设 2026/6/2 1:21:06

与AI同行,答案在人手中:普通人如何逆袭,稳稳向前冲?

文章指出,面对AI时代的到来,人们无需过度焦虑,AI只是工具,可以辅助我们完成标准化工作。我们应该主动学习并善用AI,同时持续提升创造性思维、跨界整合、审美感知、伦理判断等AI替代不了的能力,并注重修好人…

作者头像 李华
网站建设 2026/6/2 1:19:13

智慧职教自动刷课脚本终极指南:3步实现全平台自动化学习解决方案

智慧职教自动刷课脚本终极指南:3步实现全平台自动化学习解决方案 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course 在职业教育在线学习日益普及的今天…

作者头像 李华