00:01
各位上硅谷的朋友们大家好,欢迎继续收看上硅谷Java n IO课程。咱们在前面的内容中呢,已经完成了NIO中三个重要的概念的讲解,那下面呢,我们把这个NIO它的一个编程步骤给各位来总结一下,咱们总结一下也就是咱们开发代码的一个基本步骤,那这里边呢,给各位我来总结一下这个过程呢,我们就对照咱们刚才的代码,咱们来详细总结一下这个步骤。首先我们在编写IO代码的时候,里边的第一步我们应该做什么呢?咱刚才写到第一步,咱是不是要创建一个这个server socket channel通道,并且绑定它监听的端口,那我们来写一下啊,第一步创建一个叫server。China。
01:01
这么一个通道,并且给他就是绑定。我们监听的这么一个端口,这是里边的第一步操作,然后这个做到之后,我们里边的第二步,我们应该做什么呢?我们来看一下啊,第二步咱是为了设立一下。我们这个通道它是一个叫非阻塞的这种模式,这是咱的第二步,然后咱们看一下我们之前写的代码里边这个基本过程。各位看到第一步是不是建一个server so China,第二步设置成非阻塞模式,然后这里边绑定我们的端号,所以这是里边的第一步和第二步,然后这个做导之后,如果说咱们编写代码,那它里边的第三步我们要做什么呢?给各位说一下啊,第三幕操作组咱是不是要创建这么一个s select这么一个选择器。那我写一下啊。
02:01
Select这么一个选择器,这是咱们的第三步,而选择器创建之后第四步各位同学应该能想到了,咱们做的就是把China是不是要注册到我们的选择器中,并且监听你里边这个就是连接这个事件,比如现在我是监听我是就是。接受的这么一个状态,包括读,包括写等等,所以咱们要做这么一个注册,这是里边的第四步操作,我写一下。把我们的。然后给他注册到咱们这个选择器上。注册之后呢,我们要去监听里边那个相关这个就是就绪的这么一个世界啊,或者说一个连接的世界,比如说你是一个读是写还是。就绪等等各种状态啊,这是我们的第四步操作。
03:03
然后这个做到之后,我们代码中的第五步,我们要做什么呢?给大家写一下啊,咱们的第五步。我写到这里啊,第五操作咱们干什么呢?我们就要调用咱们这个。它里边的这个方法,这个这个方法。这个过程中呢,我们要做到一个就是循环的这么一个调用。然后调他做什么呢?就是来监测一下通道里面那个旧区的这个状况。写下啊,就是。监测一下,或者监听一下你这个通道里边那个就绪的一个状态,就是是否是一个就绪的状态,这是咱的第五步操作,通过赖的方法做个实现,然后这个做到之后,下面进入到我们里边的就是第六步操作,然后下一步做什么呢?给大家写一下啊,其实代码咱刚才都写过了,那咱现在就调用里边有一个方法叫这个select kiss方法。
04:11
就是这个方法。然后通过这个方法做什么事情呢?获取到里边那个就是就绪的拆那个集合。把这个得到,因为各位知道一个选择器是不是能够监听多个通道,所以我们把这里边的多个就绪通道的集合给它得到,调用这个select case方法进行实现,然后这个做到之后,下面就是咱们里边的这个第七步操作。给各位进一步写下啊,第七步。然后第七步做什么呢?因为现在有这么一个,就是集合的这个部分,那我们下面就是进一步往下进行这么一个实现啊,那这里边我们写一下啊。就是里边的这个过程。那么咱们看一下啊,呃,第六步刚才给它去掉了啊,咱给大家快速加上啊,就是第六步刚才刚说过啊,咱们在第六步里边呢,我们就是调用咱们那个方法叫light。
05:12
Kiss这个方法来获取到这里边就是就绪的这个这个集合。把这个我们得到,然后得到之后,下面进入到里边的第七步操作,那我写一下啊第七步。然后第七步咱们做什么呢?因为现在有集合嘛,所以咱要便利我们这个就绪的channel这么一个集合。把它做遍历,遍历之后判断你这个就是就绪的事件的这个类型,比如你是读还是写,还是什么类型,然后实现咱们具体那个就是业务上的这个操作,比如你做一下你具体那个业务上的代码,这么一个实现,所以这是我们的里边的第七步操作,然后这个做完之后呢,咱们应该还有最后一步,也就是第八步操作,给各位最后写一下,然后第八步咱要做什么事情呢?就是现在咱要根据我们的具体那个业务的流程来判断一下我们现在是否还需要,就是再次。
06:19
去做这个就是注册你这个监听的这个事件,如果说需要的话,那咱就重复执行咱的就是第三步这个操作啊,就继续来执行,继续说应该是啊,重复执行我们的这个第三步操作,得到选择器,然后得到里边内容,然后依次进行执行,就重复执行我们这个操作,所以现在啊,这就是咱们总结的NIO里面一个基本的开发的代码的流程,我们后续代码如果写NIO基本上就是按照咱们这个流程做到的,包括我刚才的例子中,其实写的代码就是里边的这个流程,所以各位啊,把这个NIO操作的步骤给他,要自己能给他总结出来,因为咱的代码就是按照这个流程,我们最终做的这么一个实现。
我来说两句