当前位置: 首页 > java >正文

Java IO


​一、Java数据流的分类​

1. ​​字节流(Byte Stream)​
  • ​特点​​:以字节(8位)为单位读写数据,适用于​​所有类型文件​​(包括二进制文件如图片、音频、视频等)。
  • ​类命名规则​​:以 Stream 结尾(如 InputStreamOutputStream)。
  • ​常见实现类​​:
    • 文件操作:FileInputStream / FileOutputStream
    • 缓冲优化:BufferedInputStream / BufferedOutputStream
2. ​​字符流(Character Stream)​
  • ​特点​​:以字符(Unicode编码)为单位读写数据,​​仅适用于文本文件​​(如.txt.csv等)。
  • ​类命名规则​​:以 ReaderWriter 结尾(如 ReaderWriter)。
  • ​常见实现类​​:
    • 文件操作:FileReader / FileWriter
    • 缓冲优化:BufferedReader / BufferedWriter
    • 编码转换:InputStreamReader / OutputStreamWriter(可指定字符集)

​二、关键注意事项​

  1. ​字节流的通用性​
    字节流可处理所有文件类型(包括文本),但字符流仅限文本。若用字符流读取二进制文件(如.jpg),会导致数据损坏。

  2. ​字符流的编码优势​
    字符流默认使用Unicode编码,自动处理本地字符集转换,避免乱码(例如读取UTF-8文本时无需手动编解码)。

  3. ​性能优化​

    • 优先使用​​缓冲流​​(如BufferedInputStreamBufferedReader)减少IO操作次数。
    • 字符流底层仍依赖字节流,通过InputStreamReader转换(如 new InputStreamReader(new FileInputStream("file.txt"), "UTF-8"))。

​三、代码示例对比​

字节流读取文件(适合任意文件)
try (InputStream is = new FileInputStream("data.bin")) {int byteData;while ((byteData = is.read()) != -1) {System.out.print((byte) byteData); // 按字节处理}
}
字符流读取文本(避免乱码)
try (Reader reader = new FileReader("text.txt")) {int charData;while ((charData = reader.read()) != -1) {System.out.print((char) charData); // 按字符处理}
}

​四、如何选择?​

  • ​非文本文件​​ → 字节流
  • ​文本文件​​ → 字符流(尤其需处理多语言编码时)
  • ​需要高效IO​​ → 组合缓冲流(如 BufferedReader + FileReader

http://www.xdnf.cn/news/11343.html

相关文章:

  • 15款方便实用在线PDF转换器
  • C-Free使用教程(使用C-Free编写C语言程序)
  • 20230507使用python3批量转换DOCX文档为TXT
  • Android组件化跨进程通信框架Andromeda解析(1)
  • innerText,innerHTML的用法以及注意事项
  • Linux 内核(Kernel)组成分析
  • 建议收藏万字长文!嵌入式Linux系统移植原理与方法总结
  • 码率(Bitrate)、帧率(FPS)、分辨率和清晰度的联系与区别
  • srcollTop、clientHeight、scrollHeight详解
  • 【linux3.10】从mmap的实现来看vma的组织和使用
  • 解决mfc100u.dll丢失
  • ffmpeg和H264视频的编解码
  • 灰度、灰度级、分辨率、像素值;
  • 详细说明如何实现简易轮播效果
  • 电脑技巧:进程管理工具Process Explorer介绍
  • 聚水潭ERP集成用友NC(聚水潭主供应链)
  • U盘启动盘怎么制作?
  • 程序员必备的15个接单平台,拥有即将获得“钞能力”!
  • 芯片架构设计及其作用
  • 【C语言】C语言 学生成绩管理系统(源码+报告)【千行代码】【独一无二】
  • CLOSE_WAIT状态的原因与解决方法
  • 一文彻底搞懂进程间通信方式
  • 网关(Gateway)
  • Win10系统搭建个人hMailServer邮件服务结合内网穿透远程发邮件
  • XSD(Xml Schema Definition)详解
  • 文菌装NAS E5:超详细!手把手教您安装黑群晖918+6.2保姆级教程
  • 生态增长 TVL 飙升,Metis 或是 Layer2 最具潜力黑马
  • 编译原理-10-SDT
  • 深度强化学习及其在军事领域中的应用综述
  • 需求管理的主要内容包括哪些