00:00
行,那回过来呢,大家先看一下我们一开始写的时候呢,这样的一个结构啊,这个结构里边呢,咱们相当于刚才讲的时候呢,就是先说的它,然后说一下这个写出,接着呢,我们写了一个对于文本文件的一个复制,用它俩,那同样的这样的1234这四步,我们看了一下,使用file input stream和file output the stream怎么呢,实现文件的一个复制,诶我们刚才呢,就讲完了,也说到了,它呢是来处理字节的,这呢来处理字符的,那么这个讲完以后,我们呢,接着来看另外的一个流,叫做缓冲流。缓冲流属于处理流的一种。啊,对应的呢,就这四个流,那分别呢,是在前一个流的基础上进行包装,我们说呢,这个处理流不就是对已有的流进行一个包装吗?哎,那么对应的就是左边这个啊包装完以后,我们就用右边这个流呢进行处理,那么缓冲流,缓冲流处理流一种它的作用是什么呢?我们说缓冲流的主要作用就是为了提高我们文件的一个读写效率。
01:04
开发的时候呢,我们不会去用这四个的,因为它是比较基本的几个流,效率上呢稍微差一些,我们要用的话呢,也会考虑用缓冲流,就是这四个。那这四个的话呢,那自然而然的话呢,你也知道他俩是处理字节的,这俩呢是处理字符的,哎就这样好,所以这块呢,我写一个专门来测试我们缓冲流的啊这呢,你要把这四个类呢都写到这就有点太长了,或者写个就叫buffer的啊,它的一个test。那在这呢,我们写明一下啊,叫缓冲流的使用,叫处理流之一。哎,缓冲流的使用,首先呢,涉及到我们这四个流,哎缓冲流这四个。嗯,这样摘下来。
02:00
这是处理字节的一个输入,一个输出,处理字符的输入。哎,处理字符的一个输出,好,就这样子,这这四个流,然后第二个。嗯,第二个的话呢,我们想说的就是这个缓冲流的一个作用,或者呢,讲它的一个意义,我们说可以提高啊流的一个呃,读取和写入的速度啊,就是为了提升这个效率而生啊,这是它的一个主要的作用,行,那下边的话呢,我们就来看一下怎么呢能够体现它这个速度的一个提升。啊,下边呢,咱们就写一个具体的代码了,哎,具体的代码那来证明说它这个速度呢,确实是有提升的啊,那要具体写这个提升,咱们呢,就拿刚才说的这个视频的一个复制来说了,啊,那一方面呢,来验证一下它的作用,另外一方面呢,我们也看一下这个buffer的input stream和buffer output stream怎么用,哎这呢,我们就写一个啊。
03:11
八的,哎,我这叫做就简写了啊,写这个stream它的一个测试了。行,那么这个方法呢,干什么,我们就是让他去实现啊,一个文件的一个复制啊,或者你可以准确的说呢,先拿一个叫非文本文件的复制,咱们先不演示那个视频,咱们呢,就先拿这个小图片来说一下,对这个图片呢进行一个复制,看看用啊缓冲流怎么做。啊,忘了加小框了啊。行,怎么写呢?哎,这个呢,我们再强调一下这样几个步骤,第一个还是造文件,它就捡起了造文件src的一个范,嗯,我们就拿这个图片来说,这么着看al导入一下,好,第二步倒流。
04:15
倒流造流,这时候呢,你要注意一下,我们现在要使用的是缓冲流,缓冲流叫处理流,处理流咱们说它是不能说直接作用到这个文件上,对吧,这呢是还是作用在文件上的,这个叫,呃,咱们说的叫节点流啊,File input stream file output stream,然后处理的呢,是作用在它上面的。那体现在我们代码层面呢,那就是这样啊,首先呢,咱们先把这个file input stream。先造出来,把我们这个src这个file呢,你先放进去,这是我们输入这一支,那你现在呢,想复制吗?那上面这块呢,你得复制一个文件,我叫det,你想复制到来一个三吧。
05:05
到这那这块呢,你也对应的把我们这个file output STEM呢也提供好,哎这呢,第1FT的一个是这样行,这呢我们相当于是一个2.1 2.1呢,我们是造了一个叫两个文件流,或者叫节点流啊文件流就是我们这个file也叫做节点流啊,那造完它以后,那下一步呢,我们再去造这个处理流,哎我们去造处理流准确的说呢,是缓冲流行,那我们就buffer的input stream,哎,你有一个buffer的input stream,现在我们关心的是参数,对你是不是就把这个FS扔进去就行啊,因为我包着它嘛,哎就意味着把它呢,就放到我这个参数位置啊,因为咱们对应的。
06:05
有一个构造器呢,就是让你写一个啊control的斜杠啊,就让你写一个这个input stream,第一个啊就是所以我把FS呢,作为这个呃,一个子类的方式啊就放进去了,然再接着啊造这个输出的啊bos。Out,不,Stemb fors。行,这呢,这不是把这个瘤呢就造好了,就哎这块异常呢,你也可以先抛一下啊,哎先这么着,这呢我们说的第二步,然后第三步还是那个事儿,就是具体的复制的细节,哎这里边涉及到这个读取和写入的过程啊。此时的话呢,我们还是字节流啊,这还是字节流,所以呢,你还是字节的数组。诶buffer啊,New一个BAT,这个咱们图片你可以小一点,不用说太大了啊,一个L,哎,然后还是个well,还有套路一样啊,等于注意。
07:10
这时候拿谁去read,你要这会还拿这个FS read,那那你造这个八号的就没意义了,对,拿我这个BIS去read。哎,具体的用的方法肯定变了啊,但是呢,这个参数都一样,还是读到我们这个八当中。还是返回它的长度不等于负一,哎,一样,只是这个方法的调用者变了啊。接下来写出去就改成bos了,Bos用这个了,你就别用这个fos了,哎,Bos它呢,再去点做一个right对零到。哎,领导揽次其实相较于前面的唯一变化就是多套了一层,哎,就多套了一层啊,完事,第四步资源关闭好了,关几个,我这里边有几个流啊,四个流正常来讲咱们要关是不是你得关四个啊,啊,这是第一个事,你要关考虑得关四个,其次先关谁后关谁啊,咱们那会儿说的话呢,是这个,说这两个流要关,说先关谁后关谁无所谓,但他俩属于同一个级别上啊,你现在是在他们俩的基础上又包了一层啊,这时候呢,就有一个关闭顺序的要求,对这个要求呢,我们就要,哎,这个写这吧,要求啊。
08:51
要求的就是先先关闭啊这个外层的流,再关闭内层的流,我们造的时候呢,是先造到内层的,然后呢再造到外层的,关的时候呢,反过来先关外边后关里边,外边这一层上先写谁后写谁无所谓。
09:15
哎,举个例子,就相当于你穿衣服一样,你穿衣服的时候是不是先穿里边这个内衣样,再穿这个外边的衣服,脱的时候呢,你不能先脱内衣吧,是吧?哎,拖的时候正好反过来啊,你先脱外边的,再拖里边的,哎这里边就不脱了,不脱了你还得关呀,是吧?啊哎这呢就是这样一个顺序,哎也就是说我们要是写的话呢,你应该就是先写外边,不妨呢,我们就大家写的时候,你就你就从下往上看啊,那下边这个肯定是后造的啊,你就先关下边的,那你就直接bos点哎做一个close bs点哎做一个close,然后fo s,哎,Closes点哎close这样哎然后分别呢去做这个才开始处理啊行,先不处理呢,我们再多说一句,下一个事儿就是正常我们要关的话呢,那确实你得考虑四个都得关,毕竟呢,你造了。
10:16
四个瘤啊,关的话呢,要求是先关外边呢,再关里边的,这是这个知识点啊,这是第一个,然后第二个点呢,我们要说的就是啊,这算是个要求,下面呢说一个这个,呃,说明说明呢,就是我们在关闭外层的时候,我们这个代码里边呢,Close的时候,它会自动的帮我们把内层呢,也就顺便做了一个关闭。啊,那言外之意,咱们要关的时候,其实大家只需要考虑诶关闭外层就可以了,这个内层呢,其实就可以省略了啊,我们说在关闭外层啊流的同时啊,这个内层流啊也会哎自动的来进行关闭,所以呢,关于内层啊,这个流的关闭我们可以省略,就是你写上的话呢,它肯定不错啊,但是呢,你就不用再写了,因为已经关了,所以这两个呢,我们就注始掉了,只需要关这两个就行。
11:21
OK,那这呢我们就写完了啊,写完以后,哎,咱们呢,把整个呢这块给它包起来,哎这块呢给它包起来,点右键,它不是点邮件了c shift,诶我一直说out shift z啊,然后点我们这个,嗯,这块我们都得给它整进去。这样然后呢,这个每一个呢,我们再去加个衣啊。
12:01
这么把这个给上去,分别的给做一个check开,诶好。行,那这样的话呢,咱们就算是办事了。嗯,完事了啊,其实整个呢,你改成track,反而看着这个结构好像有点复杂,嗯,不如咱们刚才那个就先写个ROS啊,结构更清晰一点啊,主要呢,我们这一章就是让大家体会一下这四步,就是体会一下这四步行,那完了以后,咱们现在呢,执行看看这个复制的一个过程走。啊,这就完成了,完成以后在我们这呢,就会出现这个呃,图片三了,诶打开那也是没有问题的,这个你也可以去看文件大小啊,其实呢也是一样的,这呢我就不看了,这呢咱们就实现了一个叫非文本文件的一个复制。
我来说两句