IO概念介绍

https://blog.csdn.net/u012250875/article/details/78341874 原博链接

概念

1、IO

即Input和output的缩写,是对数据的流入和流出的一种抽象。

2、什么是流

从水流、物流、人流可以总结出流的特点:动态的、可转移的,从一处到另一处的。

3、java中io

java为了我们调用方便,而屏蔽输入/输出源和流动细节,抽象出的用于解决数据流动问题的类体系。

4、输入流和输出流

用于读取的流就是输入流,用于写入的流就是输出流。
输入输出的概念一般是针对内存来说的,写入内存(输出流),从内存中读(输入流)。

5、字节流和字符流

输入输出流可操作性的最小单位是字节流和字符流。
字节流:一次操作8Bit,java io体系中字节操作流以stream结尾。
字符流:一次操作16Bit,java io体系中字符操作流以reader和writer结尾。

6、节点流和包装(处理)流

1)节点流偏向实现细节,直接与细节打交道,比如FileInputStream,而包装(处理)流偏功能,以目标功能为抽象,比如PrintStream。
2)区分节点流和包装流最简单的方法就是:处理流的构造方法中需要另外一个流作为参数,而节点流的构造方法则是具体的物理节点。比如,FileInputStream构造方法中需要一个文件路径或者File对象,而PrintStream构造方法中则需要一个流对象new PrintStream(new FileOutputStream(""))
3)包装流使用了装饰者模式,包装流对节点流进行了一系列的强化包装,让包装后的流拥有了更多的操作手段或更高的操作效率,而隐藏节点流底层的复杂性。

7、低级流和高级流

低级流和高级流对应的概念即对应上面的节点流和包装(处理)流概念。

8、普通流和缓冲流。

普通流和缓冲流主要是针对读写性能上提出的相对概念。普通流与缓冲流的区别在于一个一个数据的流动还是一堆一堆数据的流动。

9、BIO,NIO,AIO

BIO:B有两说,一为Base,jdk中最早抽象出的io体系;一为Block,jdk 1.0中的io体系是阻塞的。所以两说都有道理,一般我们认为B取Block之意。
NIO:N也有两说,一为new,针对Base而言,一为non-Block,针对Block而言。
AIO:A为Asynchronous,异步的,异步IO,AIO还有个名字叫NIO2。

发展历程:bio(jdk1.0) -> nio(jdk1.4) -> aio(jdk1.7)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值