IO的基本概念

IO流的划分

按照流的流向分,可以分为输入流和输出流。
按照操作单元划分,可以划分为字节流和字符流。
按照流的角色划分为节点流和处理流。
节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader、FileWriter.
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。
节点流是底层流/低级流,直接跟数据源连接。处理流(包装流)包装节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入和输出。处理流对节点流进行包装,主要以增加缓冲的方式来提高输入输出的效率,使用了修饰器设计模式,不会直接与数据源相连接。

主要抽象类

InputStream/Reader: 所有的输入流的基类,InputStream是字节输入流,InputReader是字符输入流。
OutputStream/Writer: 所有输出流的基类,OutputStream是字节输出流,OutputWriter是字符输出流。

字符IO流

在这里插入图片描述

字节IO流

在这里插入图片描述
对于低负载、低并发的应用程序,可以使用同步阻塞IO即BIO来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用同步非阻塞的 I/O 模型 NIO 来开发。AIO (Asynchronous I/O)是异步非阻塞的 IO 模型,基于事件和回调机制实现,应用操作之后会直接返回,不会堵塞,当后台处理完成,操作系统会通知相应的线程进行后续的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值