温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,各位同学,我们继续来看这个异步的fair,刚才咱们完成了通过future进行写数据操作,这里边有一点特别注意啊,就是你调这个方法的时候呢,你的文件必须已经存在,如果文件不存在调方法它会抛出一个异常,这个各位特别注意一下。这个呢,说完之后,下面呢我们就来通过另外一种方式,就是completion handler进行写数据的操作,这个过程和刚才的读应该说差不多,那那下面呢,我们就通过代码给各位来演示一下里面这过程。那这里边,比如说我把这个方法咱们再复制一份。复制之后,我把这个方法名字我们给它改一下,我们改成这个。然后改完之后我们来写下这个代码,这个代码怎么做呢?首先第一步咱们还是建一个异步的channel这么一个通道,第二步创建buffer,然后第三步就是向buffer中来写入它的内容,这跟之前应该说都一样的,没有什么区别,然后下面就不一样了,各位注意啊,就是里边的。
01:17
这个地方。这里边有点区别了,咱们刚才是不是调一个right方法,而write方法中我们传入是两个参数,但是现在呢,我们要传一共有这么四个参数。那咱们把四个参数给它传下啊,我们调right方法,第一个参数就是咱这个buff法,第二个位置就是零,第三个其实也是一个buff,然后第四个呢,注意啊,咱就new上这么一个对象,叫这个comp handle了,New这个对象,然后在这里边有两方法,一个叫complete,一个叫complete,表示你写完成之后,表示你写失败之后,那这里边比如说我们就直接做一个输出啊,就把这个result就输出下就可以了,所以这样的话呢,我们把这个代码咱们就最终完成了。
02:13
也就是里边的这个过程啊,咱们通过这个handle了实现了一个写数据的这么一个过程,所以这是我们完成的这个代码。然后完成之后,下面呢,咱们把它也是测试一下,看一下结果,比如说为了区分啊,我给他加个值,就是at硅谷这个Java。Java啊,加上这个纸,然后咱们把文件中内容给他,也是清除一下,最终咱们把这个方法执行,我们来做一个测试。那我现在把方法执行一下啊,我们来看一下。首先这里边没有报错提示我们成功啊,就是偶尔结束了,然后写入这个15这么一个大小,咱们到文件中看一下,大家看at硅谷Java Java是不是都写进去了,所以现在呢,我们就完成了这个操作,最终给各位总结一下啊,就是咱们刚才这段内容中,我们完成这个,这个就是异步的带有拆头这个操作,咱们分别演示了读,还有写操作,读和写里边都是两种方式,分别第一种方式用future进行读写操作,第二种方式用competition handle进行读写操作,所以关于这个异步的file channel给个位就最终也是完成了。
我来说两句