00:00
那下边呢,我们不是想证明说你这个读写速度更快吗?那你就得跟我们使用file input stream file output stream呢做一个对比,那我们同样的来写一个方法,说呢,要实现文件复制的一个方法。这个方法咱们刚才呢,其实写了一个是用的fair input和output STEM来做的啊,也是一个VO,咱们叫copy啊,File啊,这个呢,咱们是用的叫buffer的啊,这个我就这样写了啊,是用这个带缓冲的一个复制,跟刚才呢类似,我们也需要去提供这个文件的这个路径啊,OK,就这样,那咱们呢,也可以把刚才写的这块逻辑从这啊一直到这CTRLC复制一下拿过来。拿过来,拿过来以后这块的话呢,这就不用它了,这你就是一个不确定的了啊,我们写成叫src的一个pass,下边呢也类似诶D的一个pass,行这呢就是一个复制的方法,下面呢,我们来同样的对咱们那个视频呢做一个复制操作。
01:20
啊,这个我们来一个单元测试,哎,Test叫copy file啊,With b。那八分E2啊行,现在的话呢,我们就调这个方法看看它,呃,跟咱们刚才演示的最后这个事儿。哎,复制到你看花了多少时间,诶我把这个代码呢,CTRLC啊咱们粘过来。嗯,粘过来这个就不要了啊,咱们现在呢,还是想复制这个视频,我想把这个呢复制成零三,哎,这个呢,我们用的是上边这个方法,CTRLC这个改个名啊,调列的方法,我们看下这个花费的这个时间是多少,这样先别着急去执行,注意一个细节,大家写的时候要小心点,我这个里边看看比较关注的就是这个位置。
02:22
对,我现在呢,比较他俩,我想比的是他们用不同的流的区别,你这个位置大家得一样啊,你不能说比较两个人,这是一桶,呃,这个一缸水啊,就是让这个水呢,你就运到这儿,说这俩人谁快,你这呢给了个大桶,这个人给了个小桶,这显然不公平啊,俩人给的这个桶的一样大,咱们呢在这这块,这块是1024CTRLC啊,那这块呢,你也是1024。要么呢就都改成十也行啊,但是一定要一样啊,这样才公平,那么接下来我们看一下做一个复制操作啊,原来呢是618,现在桌面没有这个零三,我们现在呢做复制走好176,哎这个时间呢,你会看到确实呢是短了。
03:11
嗯,因为呢,咱们整个这个视频还是有点小哈。你发现的这个。连一秒都不到是吧,一秒都不到啊,你可以整个视频稍微大一点啊,你去体会一下,至少我这一个呢,效果其实也已经看到了,确实呢,诶是要快一些,文件的大小也对比一下。看看是完全没有问题的。那这个呢,打开也是能够观看的啊,这肯定没问题,行,这呢就是咱们说使用这个buffer来做的,那为什么他能做到这个事儿呢?主要呢,还是因为它内部提供了一个缓冲区啊,原因啊能够提高。
04:01
啊,提高这个提高啊,这个读写这个速度的这个原因啊,我们说内部提供了一个啊缓冲区啊什么意思呢,咱们简单说一下啊,你看我这个呢,叫buffer input stream啊我们点开,点开以后这呢,大家能看到一个常量叫default buffer size8192。8192除以1024就是八。啊,就是把。啊,就相当于我们是1024的这个八倍一样啊八倍,嗯,咱们呢,Ctrl o去new一个叫8FOR的input stream在这吧,咱们刚才用的是不是就这个构造器,这个构造器它呢,是不是就用到了我们这个叫default buffer size。相当于它内部呢,提供了一个缓冲区,就是8192,哎,我们呢,能够存放这么多个这个字节了,是吧?啊哎,我们能存这么多,它呢,其实就是这样啊,这是一个文件,我们现在呢,读的时候呢,它会把这个数据呢,先读到我们这个buff这个里边,在这缓存着,诶缓存着,然后达到我们这个指定大小以后呢,它就一次性呢去写出。
05:20
哎,通过这样的一种方式来提高这个速度。来提高这个速度,那相应的大家也会看到什么呀,咱们在这个buffer的output stream,这个叫输出,在这个类里边呢,它有一个方法叫bos.flash的方法。这个flash的意思呢,叫刷新缓冲区,刷新缓冲区就是正常情况下,我们这一个文件,它现在读进来,咱们这有一个8192,就是超过这个数的话呢,它就呃自动的,它就给你flash出去了,就是一满它就flash一下flash一下flash呢就意思就把这个数据清空,我们给他写出去。
06:05
这个意思,那如果说我们显示的调了一下这个flash。啊,那就是有可能,比如我们这块呢,本身还没有存到8192,大家呢,就显示的去flash一下,就是诶只要你调flash,我呢就清空这个缓存区,然后去输出,所以这个flash呢,就是这个意思啊,咱这呢知道咱们在RA的过程当中,你看它会诶自动的是flash这个操作了,是吧,所以咱们呢,就没有必要呢,在这块去再加这个flash啊,但你知道这个flash的一个作用就是刷新缓冲区的一个意思啊行,那这呢就是咱们把这个buffer的input stream和output stream就讲了,通过这个呢,大家去体会一下,确实呢,能够提高我们的一个读写速度啊读写速度那么相应的呢,这个叫buffer的reader和reer啊,咱们还没有说,那等一下咱们举一个这个例子啊。
我来说两句