温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:01
各位同学大家好,下面呢,我们继续来演示异步file channel里边进行读取数据的操作,刚才咱们演示了通过future里边的这个read方法能实现数据的读取,那咱们下面演示另外一个操作,通过里面这个handle进行数据读取,咱们通过代码给各位直接来演示一下里面的过程,那下面呢,我们来看一下这个代码我们该怎么去做。因为这个过程呢,和刚才代码应该说很相似,所以咱们用刚才代码给各位,我就快速咱们演示出来。比如说我起个名字啊,就叫做read,这个再加上一个complete。这是我们写一个方法,然后下面写一下我们的代码,那我们来做一下啊。首先这些我先去掉,然后咱们写一下,首先里边的第一步跟之前是一样的,我们也是创建一个异步的这个文件通道对象,然后第二步呢,我们创建一个buffer,第三步咱们调file,拆到里边这个read的方法,但是这一步跟之前就不一样了,在这里边的这个锐的方法中,咱们现在要用到它里边的这个方法,那给各位来写一下啊,咱们看锐的方法中,咱们看这个。
01:25
在这里边大家发现啊,是不是有多个参数,所以咱用它进行实现,那咱们来传下里边的这几个参数给各位写一下啊,首先里边的第一个参数就是咱们这个buffer。第二个参数是你的位置零,第三个呢,其实也是一个buffer,然后重点是最后一个,咱们需要上一个对象,这个对象叫做complete handler。在对象里边大家注意啊,当咱把这个扭出来之后,它里边是不是给咱们实现了两个方法,一个叫compete,一个叫fail,然后这两个方法什么意思,给各位来说一下啊。
02:08
首先里边的complete,它就表示咱们读取完成之后会掉这个方法,然后这个fail表示你读取失败会掉这个方法,那咱就在这个读取完成之后,这个方法里边,咱把那种取道给他,最终做个输出就可以了,那这里边我来输出一下啊。比如说我把这个result这个先给他输出一下。然后输出之后,咱们把八份中内容给他输入出来,就给它读取出来,最终给他做输出,这个写法呢,之前咱也是写过的,那我就把之前代码拿过来,咱把它快速改一下就可以了,那把这代码给各位拿过来。首先啊,为了咱们方便,这个名字我改一下啊,咱这个attachment,首先我们加上一个fleet,加上之后。
03:02
扭上一个字节数组,然后用get做操作,最终把值做输出,然后输出之后把这个呃,他们这个buffer做一个clear,所以现在这个代码我们就完成了,通过里面这个complete,这个handle进行一个读的这么一个过程,那这个写完之后,最后咱们把代码执行一下,看一下它最终的效果是怎么样的,我们来试一下啊。大家看,首先输入这个结果是16,然后里边的值我们是不是都读出来,就是文件中的内容,最终我们做了一个读取,所以大家注意啊,就是现在我们通过两种方式,第一个用filter方式来读取数据,第二个用这个competition handle进行了数据的读取,所以这两部分我们就完成了一个演示。
我来说两句