java.nio包解析_java.nio包的分析(二)---Channels分析

继上一小节分析完Java.nio直接包下的Buffer,我们再来看看下面的一些包,自然就落到了Channels通道包的实现了。Channels包的作用可谓是其中的主要作用的体现了,可以用FileChannel实现双向I/O,ServerChannel无阻塞的通信等等。首先亮出他的目录结构。

4a3a5d5fd9d764aa185cac724144b77e.png

还有相应的服务程序接口包中的一些类

660f906d959062a7ee6b250c891f561d.png

我们先来看其中的文件锁类,避免多线程同时操作文件

1174769fe3ecea49ebea7a5094c41616.png

我们再来看看其中的FileChannel类时如何操作的,首先

f30bc87c556d96d43e35b2fdd2a9753d.png

下面我们再来看看其中的用于Socket的SelectKey类,nio下的socket与平时我们用的用法不同,他的事件需要我们先去注册,相当于以事件通知的形式,里面总共有4种类型

85fb864da38474c50b282545341df219.png

里面还提供可一个可关联的对象,也许是用来存储什么信息的

e26266e8d2c030ae74b3463a24c7e37c.png

说完SelectorKey,我们看看SocketChannel类,

6e77543d4a8a0b3b135fc80552279405.png

还有另外一种形式

095cccec1bf0421e4c0ae4587d93ab99.png

在这个包里还有叫Channels类跟Channel类名字太容易记混了,channel 只是一个interface,加了一个就是一个全新的类的,我们来看看其中的read()方法,

8e71c9b10421dd9b29d46408f2c26f4c.png

然后我们看看刚刚提到的一个提供类,叫SelectorProvider类,

7174036ef8ba89fd9d9de9cbbd1a3cef.png

或者通过构造函数的形式去取得

f87e1a64d2be74d693cd00cd525912e7.png

Channel明显感觉是里面最难懂的部分了,类最多,我只能理解个大概吧,我只能是带领大家入个门。好,接下来分析nio中的最后一块新大陆,Charset。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值