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

java里面的IO流分为哪几种,他们的区别是什么呢

Java IO流主要可以从两个最重要的维度进行分类:流向 和 操作的数据类型。

  1. 按流向分(以内存为参照物):

输入流(Input Stream): 将数据从外部(如文件、网络、键盘)读入到内存中。InputStream 和 Reader 是基类。

输出流(Output Stream): 将数据从内存 写出到外部(如文件、网络、控制台)。OutputStream 和 Writer 是基类。

  1. 按操作的数据类型分:

字节流(Byte Stream): 以字节(byte,8位) 为基本单位(0,1二进制数据),可以处理所有类型的数据,例如图片、视频、音频、可执行文件等。基类是 InputStream 和 OutputStream。

字符流(Character Stream): 以字符(char,16位Unicode) 为基本单位,专门用于处理文本数据。它底层会自动进行字符编码和解码,避免了乱码问题。基类是 Reader 和 Writer。

区别:

字节流的基本单位:字节(byte),1字节,处理所有类型的文件(二进制文件),如图片(jpg,png)、视频(avi)、音频(mp3)、压缩包、可执行文件等。基类是InputStream,OutputStream,优势是万能,什么都能读能写。常见类是FileInputStream, FileOutputStream, BufferedInputStream, ObjectOutputStream,例如:用字节流读一个文本文件,你得到的是原始的字节。如果文件是UTF-8编码,一个中文字符可能是3个字节,直接输出可能会是乱码。

字符流的基本单位是:字符(char),2字节(Unicode),专门处理文本文件(txt,java,xml,csv,html等)。基类是Reader, Writer,优势是处理文本时更高效,能自动处理字符编码(如UTF-8,GBK),解决乱码问题。常见类是FileReader, FileWriter, BufferedReader, PrintWriter。例如:用字符流读同一个文本文件,它会帮你把字节按指定的编码转换成字符,你看到的就是正确的文字。 |

http://www.hskmm.com/?act=detail&tid=15063

相关文章:

  • ReLU函数及它的导数
  • 基础数论
  • 第一次个人编程作业-论文查重
  • 使用Claude代码子代理生成项目特定提交消息的技术实践
  • 走迷宫(BFS)
  • MyBatis分页的原理和分页插件的原理是什么
  • 达成度报告
  • 旋转图像-leetcode
  • 【ChipIntelli 系列】ASR部分——合成语言模型和多网络(多语种)切换
  • 内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网)
  • tanh函数
  • P13617 [ICPC 2024 APC] Bit Counting Sequence
  • 打一局吗(60pts 解法)
  • 软工9.23
  • 本地部署qwen-0.6b
  • 25分钟小练习
  • 第七章 手写数字识别V2
  • 常用软件下载
  • 实用指南:S 4.1深度学习--自然语言处理NLP--理论
  • PyTorch图神经网络(五)
  • java
  • Jordan块新解
  • [CSP-S 2024] 染色
  • Kerberos 安装和使用
  • 第一次个人编程任务
  • 概率期望总结
  • redis实现秒杀下单的业务逻辑
  • 关于边缘网络+数据库(1)边缘网络数据库模式及选型
  • 题解:B4357 [GESP202506 二级] 幂和数