IO输入输出模型是每个Java开发人员必须理解的重点,深度解析跳槽从开始到结束完整流程

本文详细介绍了Java中的输入输出模型,包括数据流的概念、流的分类、标准输入输出、数据流的装饰器模式以及NIO模型的工作原理。通过讲解,帮助Java开发者理解I/O操作的基础和NIO如何提高效率。
摘要由CSDN通过智能技术生成

关于数据流

=====

在数据输入输出描述中,我们抽象出了一个概念叫做流Stream, 简单数来就是从一个点到另外一个点的数据有序流动,或者说是一个任意长度的有序字节序列。

在Java编程中,我们为了更好的管理数据流动,将流分为输入流和输出流,并抽象了两个接口定义InputStream和OutputStream来分别描述它们。

因为我们计算机底层对于数据处理的基本单位是字节byte,所以我们数据流的基本单元也是比特,我们也称这样的数据流为字节流。

每个数据流都有两个端点,分别为数据源和数据目的地。通常它们可以是文件,网络数据流等。

很多小伙伴在学习Java编程时,很容易被I/O这部分的一些列概念定义搞混了。因为所有的数据流都是以字节流为基础根据各类数据类型的定义进行的编码处理后的结果。

在理解Java的I/O类型时,需要先了解一个设计模式,那就是装饰器模式。

简单来说,装饰器模式是通过一个基础的接口来描述所有接口约定,然后用基础实现类和附加实现类结合共同实现该接口,如此一来我们就可以保留原有接口实现的功能,并且能够通过实现类来提供附加处理功能,并提供统一的对外接口。

Java的输入输出流类型定义就遵循的这一模式,数据流的基础实现ByteInputStream和ByteOutputStream作为基础类,增加了继承继承接口的过滤功能接口和缓冲功能接口,通过它们的实现类我们可以对本来只能处理单个字节的数据流类变为可以通过特定缓冲区来缓存一定数量的字节后进行处理的BufferStream以及缓存后对整体数据添加条件过滤的BufferFilterStream。

进而我们根据各种数据类型的编码规则,对基础的字节流进行编解码处理,定义出了字符,整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值