Java nio

Channel :一个双向的通道,可以用来读取和写入数据。读取的时候会先从buffer 空间里面获取数据。写入的时候也先写入到buffer缓冲区。

包含了:fileChannel,datagramChannel/socketChannel,socketChannel,ServerSocketChannel。分别对应文件。UDP协议,和TCP协议。

Buffer:缓冲区。主要用来缓冲读取写入的数据。在读取的时,需要注意使用flip()方法,就是回到起始位置,会把position置0。

写入的时候需要用到clear和compact。clear会清空当前的缓冲区。compact会清空已经被读取的数据,未被读取的数据会放在缓冲区的起始位置,后写入的数据会写在未读取数据的后面。

capacity:就是Buffer区域的大小。

position:当前Buffer区域的位置。初始值为0,默认最大可以为capacity-1。

limit:当读取的时候表示能从缓冲区读取多少数据。如果是写入,limit默认是等于capacity,表示最多能写多少数据。

buffer类型:有很多的基本数据类型。longbuffer、intbuffer等等

Selector 选择器:会检测多个通道。每个通道都需要注册到selector 选择器上。然后选择器回去遍历这些通道,看看哪个通道准备就绪。通道注册在选择器上后,会返回一个selectionKey。然后可以遍历selectionkey 或者针对某个selectionkey做操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值