00:01
各位同学大家好,下面呢,我们继续来学习异步的channel。刚才咱们通过两种方式实现了读取数据操作,那下面呢,给各位来演示一下怎么进行写数据操作,而在这里边写操作和读一样,它也是两种方式,一种通过future进行写操作,还有一种通过这个叫comp handle进行写操作,那首先我们先演示通过进行写操作这个过程,那下面呢,我们来写段代码,通过代码给各位来演示里边这个实验的过程。那下面呢,我们来写一下代码,首先在类里边呢,咱们先创建一个方法,这个方法我给它起个名字,比如这个名字我给它改一下啊,咱们叫这个就是right。我们给它改个名字叫这个right,因为咱们是通过那个future,所以加上一个叫future。
01:07
所以这是我们写的第一个方法,然后在这里边咱来通过future做这么一个写数据的这么一个过程,那下面我们来做一下这个写法啊,首先里边的第一步和第二步和之前是一模一样的,那这两个的代码给各位我就直接复制过来了,咱们看这两步操作分别都是什么。首先第一步呢,还是创建一个就是异步的file channel这么一个对象异常,咱给他直接出去,然后第二步还是建一个buffer,重点咱们从第三步开始写,那下面我们来写一下啊,比如现在呢,我要向buffer中是不是要写入内容,那我们用一个buffer点上一个破的方法往里边写入这个内容呢?比如说随便来一个啊,我就叫at硅谷。点上一个get best这样的话往里边put的这么一个数据,Put数据之后调buffer里边这个flip方法,做它这么一个转换,然后这个做到之后,下面再调这个file,拆到里面这个方法,注意啊,这个方法就不是read了,它叫做right方法,然后right里边第一个加上咱的八,第二个加上它那个位置,咱们加上一个零,然后最终它返回到大家看是不是就是一个future这么一个对象,所以现在我们就完成里边的第三步操作,第三步就是调用里边这个write方法,我们做个实现,然后实现之后我们继续往下做。
02:44
比如这里边我们这个位置还是写一个while的这么一个判断。也就是这个future。在它里边有个方法,这个方法如果这个它就是不等于处表示没有完成,那这里边我们给他做一个判断,如果它已经完成的话,那咱最后把这个内容,比如说我给他做一个提示啊,咱就来一个这个就是right or就是right已经结束了,包括这过程中,咱们把这bber也做一个可令。
03:17
所以大家看啊,现在通过这段代码咱们就完成了,通过future,我们做这个写操作这个过程,这咱们就写完了,写完之后我们来做一个测试,首先啊,为了明显文件中的数据,先给它清除掉,这里边目前为空。清楚之后,这个代码咱们来执行一下,看一下最终的结果。现在我们执行看一下它的操作,看它到底是怎么样的,咱来执行啊,首先各位看啊,我执行之后我们发现啊,里边是报了一个异常啊,看什么异常啊,他说这个China目前呢,没有做好这个写的这么一个准备,就是他目前是不能写操作的,那咱看一下为什么出现这个问题,咱们检查一下啊,大家注意啊,我代码中的第一步骤中的这个地方,我们这里边写的是不是一个read呀,而咱写操作用的是不是应该是那个叫write这么一个值,所以咱给它改成right就可以了,刚才是这么一个问题。
04:19
然后改完之后,咱们把代码再执行一下,看一下最终的这么一个结果。然后咱看提示,我们说right over就已经写结束了,写结束之后咱们到文件中看一下,大家看at硅谷是不是就写入进来了,所以咱们现在通过这个代码就完成了异步的file里边的future的过程,进行写数据的这么一个操作。
我来说两句