当前位置: 首页 > 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.gsyq.cn/news/10537.html

相关文章:

  • 达成度报告
  • 内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网)
  • tanh函数
  • P13617 [ICPC 2024 APC] Bit Counting Sequence
  • 打一局吗(60pts 解法)
  • 2025.9.23——1绿
  • 2025.9.23
  • 第6.2节 Android Agent制作<三>
  • LVS 服务器 知识
  • 【有源码】基于LTM模型+大素材的电信客户流失数据分析系统-基于机器学习的电信客户流失预测与分析框架-基于客户画像的电信流失用户识别与分析平台
  • Apifox-windows-latest.exe 安装教程(附详细步骤,一键下载安装指南)​
  • PyTorch图神经网络(四)
  • 告别材料乱堆、用电违规!AI 施工监测系统覆盖重点施工场景隐患
  • Computer Architecture
  • Nordic 的支持对Matter 协议的支持;
  • Avalonia 学习笔记06. Page Layout(页面布局)
  • NRF54L15 两者结合的jlink保护机制(硬件+软件)
  • 个人对软件工程的理解
  • 用C/C++重构PowerShell:全面绕过安全机制的技术解析
  • Which side of a 2d curve is a point on
  • HTTPS 映射如何做?(HTTPS 映射配置、SNI 映射、TLS 终止、内网映射与 iOS 真机验证实战) - 指南
  • 大三上第一篇日志
  • 0923模拟赛总结
  • Hive采用Tez引擎出现OOM的处理办法
  • VMware之后下一个消失的永久许可,Citrix Netscaler VPX旧版许可已经失效了!你升级了吗?
  • Feminism in China
  • 大模型微调示例四之Llama-Factory-DPO - 教程
  • n8n+MySQL实现数据库查询!
  • firewalld 端口流量转发
  • Day20封装的初步认识