JAVA基础

三.JAVAIO流

1.字节流

抽象类
inputstream
outputstream

FileInputStream
FileOutputStream

2.字符流

InputStreamReader 字节转字符 可加编码
OutputStreamWriter 字符转字节

3.字节缓冲流

将读取写入的字节放入缓存区,减少io次数
BufferedInputStream
BufferedOutputStream

4.io流设计模式

装饰器

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileName));
ZipInputStream zis = new ZipInputStream(bis);

适配器
工厂
观察者

5.io模型

io的本质是内核获取外部文件同步到进程或者将进程文件同步到外部
进程向操作系统请求外部数据
操作系统将外部数据加载到内核缓冲区
操作系统将数据从内核缓冲区拷贝到进程缓冲区
进程读取数据继续后面的工作

1.BIO

同步阻塞
发起read后,线程一直阻塞,直到内核完成操作

2.NIO

同步非阻塞
反复调用read,通过轮询操作避免一直阻塞,但是等待内核完成操作的时间线程还是阻塞的
会一直轮询数据是否准备完毕,性能消耗大
IO多路复用
先select/epoll,当数据准备就绪,才发起read

3.AIO

异步io,基于事件和回调机制实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值