一、IO原理
1.底层原理
- 操作系统在进行IO的时候,实际上并不是即时操作,它们是通过缓冲区的,也就是说,我们读写文件都是通过一个中介来进行的。读系统就是把内核缓存区的内容复制到进程缓冲区;写系统就是把进程缓冲区的内容复制到内核缓存区。
- 之所以这样做的原因是避免大量的IO操作,大量的IO操作效率是很低的。这个过程并不等价于数据在内核缓冲区和磁盘之间的交换。
2.
- NIO和IO的实现方式有所不同,NIO实在JDK1.4之后引入的,采用的是块的实现方式,而IO采用流的实现方式
3.提供了两套API实现方式
4.流与块的优缺点
5.Buffer读取数据的步骤
- 将数据读取到buffer之中(buffer会记录写入了多少数据)
- 调用flip()方法(将buffer从写模式变成读模式)
- 调用clear()或者compact()方法(clear() 方法会清空整个缓冲区。compact() 方法只会清除已经读过的数据。任何未读的数据都被移到缓冲区的起始处,新写入的数据将放到缓冲区未读数据的后面。)
6.关于Channel
7.NIO中的Channel有如下几种
- DatagramChannel,读写UDP网络协议数据
- SocketChannel,读写TCP网络协议数据
- SocketServerChannel,可以监听TCP网络协议数据
二、源码:
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
- 1000.0
posted on
2021-12-13 00:13
心悦君兮君不知-睿
阅读(
143)
评论()
编辑
收藏
举报