Java I/O系统知识归纳

本文详细介绍了Java I/O流的基本概念,包括输入/输出流的定义及其在Java程序中的应用。文章解释了流的不同类型,如节点流和过滤流,并展示了如何使用InputStream和OutputStream等基础抽象类进行数据读写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流的概念

Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备连接。尽管与它们连接的物理设备多式多样,但流的行为方式相同。这样,我们在使用流的时候不需要考虑外部设备的问题。

输入/输出流的概念

输入/输出是相对于程序来说的。如果流传入程序,那它就是输入流;如果程序要通过流传输数据出去,那就要使用输出流。

输入流

读数据的逻辑:

  • 获取一个输入流
  • 通过循环来获取并读取数据
  • 关闭流

输出流

  • 获取一个输出流
  • 通过循环来获取并输出数据
  • 关闭流

流的分类

  • 节点流:从特定的地方读写的流类。例如:磁盘或一块内存区域。
  • 过滤流:可以理解为用来包装节点流的,为流丰富了功能。

输入/输出类

  • 从功能上分:输入流和输出流。
  • 从流结构上分:字节流和字符流。
  • 注意:数据传输在最底层都是以字节的形式。Java在1.0版本时,还只有字节流。由于Unicode用于字符国际化(Java本身的cahr也是16位的Unicode),所以在1.1版本中添加了字符流,方便程序员操作。
  • 字节流的输入/输出流的基础抽象类是InputStream/OutputStream。
  • 字符流的输入/输出流的基础抽象类是Reader/Writer。

InputStream的类层次

InputStream的类层次
从图中的继承关系可以看出,从InputStream继承下来的除了FilterInputStream是过滤流外,都是节点流。

OutputStream的类层次

OutPutStream的类层次
从图中的继承关系可以看出,从OutputStream继承下来的除了FilterOutputStream是过滤流外,都是节点流。

I/O流的链接

I/O流的链接
程序员真正进行操作的是DataOutputStream对象:

DataOutputStream stream = new DataOutputStream(new BufferedOutpuStream(new FileOutputStream()));

Reader的类层次

Reader的类层次

Writer的类层次

Writer的类层次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值