00:00
那么接下来咱们继续再往下看,各位啊。来,各位现在还能跟上吗?能不能跟上这会儿。能跟上吗?有没有在听课。各位扣个一。还行是吗?好好好好好好好,那行啊,那咱们继续再看了,各位啊。呃,再往下的话,咱们呢,这个目录呢,就已经建出来了啊,新建好对应的目录,建好目录之后,关键就在这文件,就剩下文件了,那如果是一个文件的话,我们这边应该一边读一边写呗,那一边读一边写大家最在行了,File input stream先给它出来是不是,然后接下来fire output stream是不是给它出来。对吧,哎,这边的你需要导包导一下这个导一下。
01:01
好,那new一个file input stream,其实这块有一个拷贝的圆,是不是拷贝的圆来我们直接呢,在这给它来try catch,然后加一个什么呀,Finally各位啊,然后这块呢,这个圆很简单,其实说白了啊,这个地方可以直接把这个s RC file传进去就行了,因为读的就是这个文件呀。对吧,读这个文件啊,因为你是个文件吗?是个文件我就读你这个文件对吧?哎,我就写到这个文件中,那你out,就等于new一个什么呀,Fire out put stream吗。是不是,哎,这有个路径,哎,有同学老师这个构造方法还可以里边跟一个file吗。这个file还可以传到file input stream里边,可以我们这个。JDK的帮助文档这块可以打开,我们来看一下啊,java.io下面有一个file什么呀,Input stream。
02:01
File input stream这个构造方法大家看看里边是不是可以传一个我们的路径。对吧,也可以传一个file吧,你看这不传个file吗?是不是,所以说可以把file传进去没问题啊,这呢。待定是吧,哎,这个待定啊,那么接下来咱们继续往下看,一边读一边写啊,就是一边读。一边写,那你要注意out,最后要flash flash一次啊刷新来这里呢,你可以给它加上一个异常处理,再往下if nu,如果这个不等于NU1定要给它close关闭啊,无所谓,没问题的啊,每循环一次,开一个关一个对吧,开一个关一个衣服那。If now啊,如果in它要是不等于空的话,in.close给它关闭,来在这加一个异常处理。那在这呢,你要准备一个什么呀,就是以前的咱们那个写法就行了啊,或者你调一个方法都可以来,在这块的话,咱们就直接怎么办呀,哎,一边读一边写呗,那一边读一边写的话,你准备一个bad数组。
03:09
是不是哎,Bad的数度那么拗,一个bad的速度,这个bad的数不是越大越好,各位啊,1024,比如说乘以1024,那一次复制一照。复制啊,那么这一块的话,我们给一个re countt呗,等于零,这就是基本功了,这是昨天我们学的那个东西了,你有没有掌握是不是?哎,Y要循环怎么循环呀,只要它不等于什么呀,负一谁不等于负1READ呀,Read countt不等于负1READ count等于什么呀?等于我们in.read往这个bad数组里边读啊。读到BY数里边,我们就往外写就行了,怎么写呀?out.right把BY数字的一部分写进去对吧?零开始读了多少写多少,Read count,这就是读了多少写多少,你读了多少在这写多少就行了。啊,写出出来就可以了,好了,那这样的话,咱们这个呢,就差最后这个路径了,各位。
04:03
明白吧,还差最后路径了,现在假如说你这个文件,你想想。它是一个什么文件呀,是一个这样的一个文件。假如说你现在这个原是这样一个文件,那你写到这个文件当中,那你这个路径该怎么办呀,应该是怎么一个路径,应该是这样的一个路径,对吧。是不是,但你这个位置不一定啊。对吧,哎,不一定怎么办呢?哎,这个算法其实搁这里的算法就一样了。和这里的算法又一样了,各位。对吧,哎,和这里的算法又一样了,看见没。从这个位置开始。Get absolute pass对吧?这是目标吧?对吧,这是目标。目录。这个是目标目录。这个目标目录是调,File是调的,这个我们的方法里面的这个类型,它的方法吗?是不是啊,Get absolute as with。
05:13
如果以这个结尾的话,就这个,如果不以这个结尾,就这个。是吧,哎,你看后边有个srcdr substance3,那我们把这个改一下各位。改一下啊,把整个这个代码拿拿过去啊,把这个复制一下啊,复制一下放哪儿啊,放到我们这个地方。注意啊,这个地方有个路径,各位,这个路径拿过来,现在唯独在这里出现的问题是什么呀?是src的一个Di。点SUBST3。其实你这个可以改成什么呀,我们上面这个src。S RC file它的get APP pass绝对路径,拿这个src这个文件的绝对路径,然后绝对路径呢,点S3。
06:05
啊,就相当于上面这个绝对路径0123,从这个位置开始。是吧,哎,从这开始截,截下来之后给它追加到。我们和我们前面这个路径拼接在一起。对吧,从这开始吗。到这结束吧,这个路径吧,是不是拼在一起啊啊拼在一起啊,拼在一起就行了,好了,那这样的话,这个pass就有了。各位啊,这个pass就有了。这是读这个写到这个文件当中啊。对吧,好,那这个pass写到哪呢?写到这呗,把pass拿过来放这就行了。对吧,把pass放到这就可以了,那么接下来这个程序呢,通过一个拼接字符串的方式拿到路径啊传进去,好,接下来我们去执行一下。好执行一下大家看看啊。好,结束了,很快,那么打开我们现在这个C盘下面的一个CO02,然后document,对吧,新建文本文档里边没东西,这很正常,然后加YC进阶下,有有有有有这个PDF文D是不是,哎,有这个PDF文件,然后呢,课堂笔记这一块你看也没问题吧,然后再往下课堂画图也没问题吧,是不是在C盘下的对不对,哎,C盘下的你看。
07:24
是不是,哎这样的,那么接下来如果说我们把它删了,各位在C盘下我建一个目录叫什么呀?叫A目录,A下边有B目录,我建出来,B下边有C目录,我也建出来,我想给它拷到这个C目录下,拷到这儿,那么这个时候呢,我们可以考虑把这个路径拿过来,放在我们这个位置上。那么这个时候呢,我们再去执行。我们来看他会不会考考过去。结束之后呢,大家看它是拷到C盘的ABC下边有个cos,然后加y z document是吧?打开它是不是我们可以看看这个大小,点右键有个属性,它字节是21510536,以536结尾,各位啊,536结尾呢,回头再看一下这个D盘下的这个Co。
08:12
来打开打开打开啊,看看这个。看看这个document啊,来下面是不是一个536字节,21510536字节,对吧,这个字节一个都不丢啊,你这样做就可以完成目录的一个拷贝了啊目录的拷贝了,各位啊,这个案例的话,它其实非常具有代表性,也难度非常非常大,因为涉及到一个递归的问题,这个递归呢不太好想。啊,涉及到递归,另外这里有大量字符串的一个拼接操作啊,有个大量字符串的拼接操作,这个东西呢,呃,很难写出来啊,嗯,因为他会经常去报错啊,会经常报错。你写一点可能就出错了,一点可能出错了啊,有这样一个问题。各位啊,这个案例呢,我就说到这儿,各位啊,就说到这儿,这个呢,呃,就是一个目录的拷贝啊,目录的拷贝来这块呢,我们给他。
09:05
删了吧,行吧,哎,删了啊。呃,这个拷贝呢,也可能还有bug啊,可能还有bug对吧?哎。差不多当前啊这块其实怎么说呢?呃,大家呢,这块啊,也可以改成另外一种方式,比如说接受用户输入对吧?啊,你可以让他输入一个什么哎元,然后再输入一个什么目标,然后呢,把圆呢拷贝到目标当中。你路径可以让你去指定对不对,另外我们以后啊,学了线程之后,大家知道了,我们可以通过线程干什么呀,去统计统计什么呀,你考了百分比百分之多少。大家想Windows这块大家做的时候怎么做的呀?是直接这个文件点右键复制一下是不是,然后直接就点右键粘贴了吧,它粘贴过程当中是不是有个进度条啊,还记得吧,这进度条还剩几分钟,剩几分钟是不是你将来学习了多线程之后,你可以启动一个单独的线程去监测它复制的一个比例。
10:03
对吧,你可以不断的去获取这个文件夹的大小,然后呢,再获取这个目这个获取原文件夹的大小,再获取这个拷贝的文件夹的大小。然后你除一下就可以得到百分比,你说考到20%了,30%,31%,32%是不是一个线程不断的去监测。哎,那么这个时候你就可以弄一个进度条出来。明白,还可以搞一个进度条出来啊,那现在的话,我们这个是没有进度条的啊,是没有进度条的。等你将来学了界面之后,对吧,你在界面上还可以画个进度条是不是,哎画个进度条出来啊,所以说这块呢啊都是可以实现的,所以咱们软件开发的是越来越有意思,越来越好玩了啊,但是这个怎么说呢,能听懂吗?这个。自己写不出来,能听懂吗?就听懂方面有没有这个啥障碍,就是这块。就顺着我的思路往下走。进度条怎么整?就刚才所说的吗?
11:00
你有没有在听课?啊,我刚讲完,我说进度条这块要做的话,得整一个什么。弄一个县城。啊,线程去监测监测什么呀,复制的百分比。啊,线程线程监测复制的百分比就行了。你要画进度条的话。不熟练啊,想不到该有哪些方法。String pass吗?这个。这是那个desk file,这是目目这个目标的一个file吗。Get absolute pass。点as,如果是以这个结尾的话,就是它。对吧。然后呢?
12:00
这个呢?对吧,就加一个斜杠呗。File的知识有点懵,就是方法不熟练呗。对吧,是不是方法不熟练啊。不熟练是不是,哎,理解这意思啊。新建目录那里看不懂。新建目录,这里就是make DR。S。创建多重目录吗?New file make MK Di吗?是不是你有file make Dis?就是如果它要是不存在嘛,就新建出来啊。就把目录新建出来啊。你new file出来,你得一个file出来才能调这个make DS方法吗。
13:00
那你先得把这个desk DR得拿到。新建文件不用啊,新建文件在这儿建的呀。在这里建的文件呀,如果你是个文件的话,这不这这会新建呀,我昨天说没说这个文件不存在会新建,我说没说file output stream这个这个构造方法构造出来的,如果这个文件要是不存在,它会自动新建,讲过吗?文杰,收到了吗?哎,Out stream这个地方如果说你文件没有的话,它会自动新建呀。不用在这里建门店,你只需要把目录建好就行了。如果这个文件不存在,它会新建。Fire out put新建文件的。啊,行吧,这个这个下去之后自己再想想吧,好吧,自己再想一下啊行,咱们先休息十分钟,各位。
我来说两句