00:01
各位同学大家好,下面呢我们来看一下NIO里边的另外一个类叫做files files这个类呢提供的是文件操作的一些基本方法,它一般和咱们刚才说那个pass接口在一起进行使用。那我下面呢,给各位就介绍一下这个file类里边几个常用的方法,给各位分别来演示一下这个方法,那我们来看一下这些方法。首先我在这里边,比如说我们现在啊,咱们先创建这么一个类,为了一会儿测试做准备,那我把这类我们来创建出来。咱们就叫做files DEMO,这个我们完成了一个创建。把类创建之后呢,下面咱们演示这个file类里边几个常用的方法,首先我们演示第一个方法,这个方法叫做create directory,用这个方法呢,能够新建一个目录,那下面呢,咱们把这个方法给它用一下,然后实现我们的这个过程。
01:10
那这里边我来写一下第一个方法,我们叫这个create directory。然后这个怎么做呢。我们加上一个pass,点上一个get,然后在里边加上咱们的路径,我们是D盘下边,比如说这个路径,我就叫这个就是。硅谷。T呢,这是我建的一个目录,而这个目录呢,我们现在在我的D盘中应该是不存在的,就是没有at硅谷T一个目录,所以咱们一会儿把这个做创建,那怎么创建,我们的做法就是咱们就调用这个file里边的这个方法,这方法就叫做create directory,然后在里边呢,加上咱们这个pass。
02:01
把这个给它加上,加上之后这里边最终会返回就是你的pass啊,就是用这个方法之后,咱们就完成了一个创建。在这个写的过程中,我们这个方法会有一个异常的出现,咱们把异常给它加上这么一个try catch给它捕获一下,所以现在这个方法我们就完成了这么一个演示,这是我们写的第一个方法。这个方法写完之后呢,下面呢,咱们把代码执行一下,我们看一下最终的效果是怎么样,那我现在把它执行,这里边没有报错,然后咱们看一下我的这个目录里边,在D盘下边我们找这个文件夹at硅谷test这个目录,大家看是不是已经完成创建,所以这是咱们演示第一个方法,创建目录方法,用file里边这个create directory可以做一个创建,这个咱们就也是完成了,而这个方法中呢,有几个细节给各位特别说一下啊,首先第一个细节。
03:05
如果说呢,你要建的目录已经存在了,那这个时候它会抛异常,说文件已经存在,这个时候如果说你建那个附录不存在,它会抛出异常,什么意思呢?比如说现在啊,我在D盘下边再有一个,这个叫AA。然后下面有你的目录,那这个时候各位注意啊,这AA是不是一个负目录,这个目录如果没有它也会抛出异常,所以这样的话呢,咱们就完成了第一个方法的演示,Create它directory,进行目录的一个创建,各位把这给它会用,然后咱们再看第二个方法,这个方法我们叫copy方法,Copy什么意思呢?咱们可以从一个路径拷贝或者复制一个文件到另一个目录中去,这个叫copy这么一个方法。那下面给各位来演示一下这个方法,关于这个就是文件的一个复制,那这里边我们来写一下啊,首先第一部分呢,咱们就是先来啊,这个代码我先注掉,咱为了明显我再写一段代码。
04:09
这个代码我们就做这个文件的copy复制。首先比如现在啊,我来建两个这个pass,第一个pass就是D盘at硅谷下边的零一.t。也就是咱们的这个文件,然后第二个呢,比如说我在这个at硅谷test下边,咱们做一个复制,让它到咱们的这个文件中去,所以现在我就写了两个pass,这是第一个,这是第二个啊,比如说我们叫这个第一个我们叫PASS1,第二个咱们叫这个PASS2,这个完成完成之后,下面咱们做这复制,用files里边这个方法叫copy方法,我们最后复制,那怎么复制呢?给各位来说一下这个写法啊,其实很简单,就是现在比如说你要把零一分到这个零二,那第一个参数写零一,第二个写零二,就是把谁复制给谁,咱们就来写这个代码,那我现在就是在里边,我们把这个PASS1复制到这个PASS2的里边去,这样的话,咱们就完成了这么一个复试过程。
05:15
啊,这是我们写的一个代码。然后在里边有异常,咱把异也加上一个拆开给它捕获一下,所以现在这个文件复制的代码我们就完成了,通过copy咱们做了一个实现,然后完成之后,下面我把这个代码执行一下,我们看一下最终的效果是怎么样的。那我们来执行,这里边没有报错,然后咱到里面看一下啊,在at硅谷中是不是有这个001.t,所以咱们现在就完成了一个文件的这么一个复制,这就是咱们的第二个方法,叫做copy方法,做文件复制方法,各位把这个知道啊。然后这里边呢,也有一些就是细节问题,跟刚才类似,就是如果说你的文件呢,就是已经存在,那这个时候它会碰异常说文件已经存在,比如说现在我们从这个零一里边到零二中,如果002已经存在了,大家都会报这个异常,说文件已经存在。
06:18
如果说你有其他错误,比如这个文件复制这个目录本身就不存在,它会抛出一个IO异常,但是这里边还有一个细节给各位说一下啊,也说现在我们在里边的copy方法中可以加上第三个参数,就是这个参数。给各位拿过来说一下这个参数是什么意思,这各位应该很好理解。比如说我现在。我把里面这个零一这个T文件复制到这个目录下001里面去,那这个时候如果这个T录中已经存在了001,如果说你没加这个参数,它会报错。说文件已经存在,但是你加上参数之后,它会怎么做呢?把目录中的文件给它,就是覆盖掉,或者给他说替换掉,所以咱们加上这个参数叫replace exist,就是给他替换掉已经存在的这个文件,所以这是关于我们提到这个copy方法的这么一个使用,各位把这给他知道啊。
07:19
然后这个说完之后,我们再看第三个方法叫目方法,目什么意思,就是做一个文件的移动,或者说文件的重命名,那这个方法我给各位咱就直接啊,给他就是直接复制一下啊,因为代码跟刚才都差不多,咱就做一个文件这个重命名的这么一个操作。那现在啊,我把这个代码给各位直接拿过来,咱们来看这个方法叫做木方法,就是移动或者说重命名的方法。那咱看到啊,比如现在呢,我在at硅谷这个目录下边有个文件叫零一.ta那我现在呢,想把它做个重命名,比如说给它改成这个叫,呃,咱为了区分啊,我叫这个就是之前它叫零一嘛,那咱叫01TEST点为了跟之前重复一下,跟之前不一样啊,然后现在我把这个代码执行一下,咱们看一下效果,看它能不能做到一个重命名操作。
08:25
或者说移动的这个操作。咱们看效果啊,然后现在来到目录中,大家看这个文件是不是就变成了01t.TT所以咱们就做到一个重名,这个参数跟刚才一样,替换已经重复那个内容啊,就把你重复的文件给他替换掉。所以现在啊,咱们把第三个方法目方法做一显示,然后咱再看第四个方法,这个简单就是delete嘛,表示删除一个文件,那这个代码我也是啊,直接复制过来,咱们看一个删除的操作。
09:01
我把代码写到这里啊,这一段先注掉,然后这里边我们要做的是这个比delete方法。在delete的中,比如说咱们这么做啊,比如现在呢,我把D盘下边的这个文件就是001.t我们要给它删掉,目前我的目录中有五个文件,那我现在把文件我们给它删掉。咱们来执行一下啊,看一下它的效果是怎么样,然后到里边看一下,大家看里边目前是变成四个文件001.t就已经完成了删除,所以这就是delete方法使用,就是删除文件这个操作。这个我们做说明啊,然后除了这个之外呢,最后给大家再演一个方法,这个方法叫这个work five。大家看这方法啊,Tree什么意思,是不是有数的意思呀,所以这个方法做的事情是什么?我这里写到啊,它就是便利,或者说递归遍历目录数的功能,就是可以做到一个递归的这个遍历功能,而这个怎么做呢?它这写法稍微麻烦点啊,在这方法里边呢,有一个参数叫做file visit是一个接口,咱要做的话必须要实现这个接口,而接口中它给我们提供一个实验类,这个实验类叫simple file,这个visitor,所以咱们用它可以直接实现我们的功能。另外在这里边还有一个枚举类,表示你的操作,比如大家看一下啊,Continue,继续。
10:35
这个终止包括跳过,包括跳过子集等等,所以这里边我们可以做一个就是便利的操作。我下面呢有段代码,这个代码我们拿过来,咱们来看一下这个代码啊,咱们来看一下就是关于我们的这段代码。给各位拿过来啊,然后这个代码做的是什么呢?它就是到咱们这个目录中去找一下咱们这个文件,看它能不能找到啊,那这文件刚才我删掉了,比如换一个啊,我就找这个002.t,我把里边的依赖给他先都引进来啊,就引一下它的依赖啊,你注意这里边啊,我们用方法中的work fair里边第一个传递的路径,第二个new,一个叫simple fair visitor,然后在里边就是做这个便历查的过程,然后这里写到大家注意啊。
11:25
在代码中,首先啊,咱们就查这个文件在路径中是否存在,如果存在的话,把它的路径输出,并且终止操作,如果不存在continue,咱是不是继续做这操作,所以现在啊,我们就做了这个代码,然后咱们把它执行一下,看一下它的效果是怎么样的。那我们来执行啊,然后大家看这里边有一段提示。这个提示呢,告诉我们说文件已经找到了,他在路径时D盘at硅谷下边的002.t,所以现在这个方法我们也做了一个演示,所以这些是关于啊,我们这个file类里边几个常见的方法,各位对称的这些方法给他能使用就可以了,而在我们file类中其实肯定还有更多的这些方法。
12:20
而其他方法,各位可以查看API文档做进一步的学习,我这里边把里面一些常用的方法给各位应该都做了演示。
我来说两句