00:00
行,那么有了这个类的对象以后,我们来看一看它内部的一些常用方法,那么如果大家需要用到,比如说咱们后边重点肯定是讲这个流了啊,这个流的话呢,我们把这个文件呢,写入到这里边了,哎,我们比如说判断一下说诶你这个文件到底存不存在呀,这个文件是不是可读,是不是可写呀,哎,这个文件的话呢,这个长度是多少啊,这个文件呢,这个最近的修改日期是什么时候啊等等,像这些功能呢,你就不能通过这个流去做了,这个文件本身它就可以做这个事儿。那就我刚才说的这些功能啊,其实都是在这个文件当中的,那我们具体看一下,实际开发当中,我们都可能会用到关于file的哪些功能,这就涉及到它的方法的使用,这呢我都罗列出来了啊,有这样的三波,那我们就一个一个来看,首先呢,关于file类的叫获取功能,那不妨我这呢就把这一块呢,CTRLC咱们粘出来考察一下这个的使用啊。
01:02
嗯。行,那这块呢,我们就来举例说明一下这里边儿的这个使用情况了,那么前边的话呢,涉及到一些基本的操作,说呢,我想获取一下它的一个完整路径,其实这就是绝对路径了,诶获取它的一个路径名字,它的上一层目录,它的长度和最近修改时间等等,行这这块呢,我们就举个例子啊,File呢,先是FILE1啊new一个file这块呢,我们先举一个,嗯,叫什么呀,叫相对路径。啊,相对路径呢,咱们这样的写的话,比如我写一个还是写啊TXT,就是相当于我们这个D08,它下边的这个路径啊,这是一个,然后咱们再整一个所谓的叫绝对路径。呃,绝对路径,这个绝对路径的话呢,我就指定一个位置吧,比如说我在这个D盘下,这个位置呢,我们去新建一个文件目录,我就叫做IO。
02:04
啊,这个IO了,然后我在这块呢,这样写D盘冒号两个斜杠IO下,嗯嗯,写成一个文件吧,这个文件呢,不妨我就叫做叫hi吧,点TXT。哎,文件名稍有不同,然后呢,我们分别呢,去测试一下这几个方法的使用啊,先针对于这个FILE1来讲。嗯,直接呢,你看它又都有返回值,所以我直接呢就都这个c out了啊,File一点叫get absolute pass。Get他的pass。Pass。盖在它的内。Get他的parent。嗯,Get它的length。
03:03
那不是直接呢掉。嗯,然后呢,它有一个叫last modified,就最近一次修改的时间。好,这个呢,是针对于咱们这叫FILE1的,来这来这呢,我做一个换行。画完以后,我们再把这个FILE2啊,也同样在做这样的一些操作啊,CTRLC。一下。哎,这块呢,我们体现的就是一个呢是相对路径,一个呢是绝对路径,哎执行。首先呢,不会报任何错误啊,这块大家要注意,就是此时呢,咱们这个方法调用还都是内存层面的一些调用,涉及不到,说要求硬盘中必须要存在这个文件啊,那么我们一个一个来看一下,首先第一个说呢,叫获取它的绝对路径,咱这呢是写的一个相对路径啊,那绝对路径你能看到,确实呢,是相较于咱们当前model的,哎呃,当前这个模块是吧,Model下边的这个hello,然后呢,你这个get pass你的路径啊,路径就是它,你的这个名字,名字就是它。
04:17
Parent parent,看这时候或是个no。相当于没找到是吧,按正常来讲这个呃,Parent是不是该是他呀,没找到没找到这个咱们等一下呢,再再说另外一个事儿啊,就是此时呢,咱们这个file呢,确实不存在,那我一会儿呢,创建一下,你看它还是不是这个no啊,再往下说获取一下你个length长度。零啊,这个最近的修改时间零,因为你此时这个文件根本就不在嘛。诶,所以呢,我们会会看到呢,像这呢,都是属于一些默认的值啊,那么下边这个呢,咱们文件其实也不在啊,但是看一看,获取一下absolute pass啊是掉到这块啊呃,这个路径完整路径啊,然后呢,它的pass还是它,因为你写的就是一个绝对路径的,呃,名字就它,然后你的parent直接呢从这掉的啊,就是这个啊last,呃,Last还有last modified啊都是零都没有啊行,这呢是你不存在的情况,接下来我在这个D08下面选中D08点右键我们去new一个file,我这时候呢就叫做hello.tstok,这里边写上ABC123啊abcde吧。
05:34
或者就写一个这个hello word这样啊,写上以后回过来咱们再跑一下。主要呢,我们看上边这块,关于我们这个叫FILE1啊,此时的话呢,它其实就。存在了是吧?嗯,此时存在的话呢,我们这个,嗯,首先获取是它的这个叫爱不路的pass完整路径啊,还有然后再接下来获取你的这个pass pass呢就是它然后获取你的这个name,哎,Name的话呢,是他然后获取你的parent,那这时候还是个no。
06:07
啊,就是你这块呢,你写成是个相对路径了,它就是光是基于你这个路径呢,去找去上面找它就看不着了啊,你要写成绝对路径呢,是能够看到的。啊,那你要想真的获取它的parent,其实也有办法啊,那也有办法,然后再下边呢,就是FILE1,它的一个length长度,那咱们呢,刚才写了hard word,一共是十个字节,其实啊,这个写了它的一个十个字节。嗯,这个我们怎么看它的这个属性啊。那在这块看一下吧。那在这,那这是点右键啊,这有个属性,这是十个字节啊,行,这是它的长度,然后呢,Last modified就最近的一次修改时间,这呢得到的仍然是一个毫秒数,毫秒数的话呢,你可以通过这个new,一个date把它包进去啊,你看一下它具体的是哪个时间啊,Al enter导入我们YouTube下的。
07:09
哎,这不就指的是这个时间了啊行,这呢是针对于咱们说这个文件要存在的话呢,像这个lengths,像这个啊,这都是可以获取到它的这个值的啊呃,那你要是不存在,咱们下边这个也看到了它这个值呢,就是一个默认值啊,这个大家能够基本了解一下就行,好这呢是咱们测试的这样的几个方法,下边这个呢,叫list方法和list files这个方法。啊,List和list files这两个呢,其实做的事呢差不太多啊,关键呢就是返回值类型不一样,这两个方法说指定目录下所有的文件或者文件目录的名称构成的一个数组,然后list files呢,就是你指定这个目录下所有的文件或文件目录构成的一个file数组。都是来获取它的目录下的这个子目录或者文件啊,只不过呢呈现出来的,这呢是呈现了你这些子目录或者文件的名字,这个呢,还是以file的方式呢,来来呈现的。
08:10
这两个方法啊,咱们我中间有个这个换行嘛,诶如下的这两个方法呢,它是适用于文件目录啊。这个适用于文件目录,哎,这个大家注意一下这个事儿,那咱把这个呢,也给大家演示一下,我在这块去写啊。行,那我这块呢,得首先有一个文件目录,文件目录我先file file等于new一个啊file这里边儿呢,我们指定一个目录,那我就这块儿找一个目录,比如我D盘。咱们的这个。我把代码都写到这儿了啊,行,以它为例吧,然后把这个路径我们CTRLC。
09:04
放到这儿。呃,首先注意这个路径呢,真实的这个文件目录是存在的啊,啊,你存在了,我才能够去找你下边的这些目录了,然后我file点儿,呃,叫list,这呢是返回它的,呃,下一层的这个文件或者是文件目录啊,是以string的方式广列举下下一层的这个文件或文件目录的名字,就叫例子吧,我们简单做一个for,不妨呢,用这个增强for。哎,这样呢,打印一下啊。好,直行。诶,大家看这时候呢,这不就罗列出来我们下边的这样一些文件,或者是文件目录的名字。像这个文件的文件的话呢,它就该有后缀还有后缀了,你像这种呢,一看它就是文件目录的格式,没有后缀的啊。行,这是它,那如果说我这写成一个Java c1,就是这个文件目录不存在啊,看会不会报错呢。
10:06
报了,嗯,这个要求呢,我们这个文件呢,它得存在啊,要不往下找就找不到了,那这要注意一下这个问题,这呢是获取的叫文件名,然后呢,我们还可以调一个file点,叫list files,这样啊al enter就是他俩呢,其实都是找他的下一层,只不过呢,这个是string型,这个是file类型的for。File f啊files,哎,这个呢,我们输出一下这个F,相当于是调它的这个图人方法啊,就把它这个文件呢,这个其实还是路径输出了一下,这呢我们换一下行。啊,这就出来了啊,那这时候呢,他写的就比较完整了,不像这儿呢,只拿到一个名,这个呢是以这种绝对路径的方式啊,都罗列出来了。
11:00
注意这时候呢,调了这显示的其实还是个字符串啊,是我们调了这个file的一个图方法了,大家在这个开发当中呢,你看看你题目当中是想用file还是想用这个路径啊,你去选择用这两个里边的哪个方法。行,这个呢就过了啊,然后再往下这一个呢,叫重命名,诶这个呢我们提一下。这个方法在用的时候吧,可能大家还经常容易出错,所以这块我们单独的这块把它说一下。行,关于它的使用,它呢叫一个重命名,把文件重命名为指定的文件路径啊,那么调了一个方法的呢,是一个file行三呢又是一个file,这呢就涉及到两个file,那我们这呢说比如我这呢,就用叫FILE1叫rename to,我这写一个叫FILE2,以它为例说明好这块呢,我们去写一下file file1又一个file。
12:07
那咱们呢,刚才在这造了一个file啊,叫hello.tst,不妨呢,我这就以相对路径的方式来表示它,选中它CTRLC直接在这块CTRLV过来了,然后我们再指定另外一个叫FILE2,哎,这个位置呢,我们比如说换一种表示方式啊,用绝对路径在咱们这个IO。给咱们刚才造了一个文件目录啊,在它下面CTRLC,我呢去提供一个文件,我叫。嗨点TXT。这样写的啊好,我们现在呢,这个file1.renametwo,我把这个FILE2呢放进去。会返回一个布尔型的值啊,这个我叫name to吧,相当于呢,我们是不是改名成功了。
13:00
那现在我们就要想个事儿,怎么就能够保证它返回的是一个处?嗯,你要想保证它是个处,你想想啊,我想把它就是说白了就是你这有个文件啊,我把这个文件呢,相当于是不是这个成功以后呢,它就跑到这块叫这个名了啊,那你觉得怎么就能是出啊,你比如说这个FILE1,他存他得存不存在啊,对它得存在就是这个FILE1呢,你肯定得有,这没有的话,你肯定过不去是吧?那再一个问题就是这个到底要不要在呢。这个想的话可能想不太好,因为在Windows中咱们的操作经验就是你要拽过去,它要存在呢,就覆盖了是吧?啊这块呢就不太清楚说到底应不应该在了,那咱们就举个例子,假设在啊,我在这个IO下呢,我就创建一个文件,哎,我这呢就叫做氦啊,点这个TXT了啊,就叫它了,嗯,写好了,只不过里边呢没写内容啊这个呢,文件是存在的,我们现在执行一下,你看看这个波尔行值。
14:08
诶false,诶false,你看这时呢,也没过去,那这个位置呢,你看一眼它也没什么变化啊还是它,然后呢,还是一个0KB打开呢,也没内容,哎相当于确实是失败了,哎这呢我们说一下,要想保证是成功的,那要想保证这个返回,哎这个处啊我们需要呢啊保证或者叫需要需要什么呢?我们这个FILE1呢,哎是在这个硬盘中是吧?是存在的,哎且这个FILE2呢。刚才也测试了,它就不能存在。哎,咱们刚才呢,这不就存在了吗?所以呢就不行啊,你把这个呢给它删掉,删掉以后现在呢它是存在的,它呢不存在,我们现在呢在执行,哎,这就是个处,这是个处,过来看一下这块呢,已经没有我们这个hello了。
15:12
然后再到我们这个IO这块去看,诶已经有了啊,这个呢,双击打开不就是hello word。哎,就相当于呢,是转换成功了啊,这个呢,你要说哎呀,一不小心执行了过一遍,然后赶紧再跑一下吧,这时候呢,你要再执行它就是false了啊,因为文件都已经过去了。哎,过去以后,此时呢,这个FILE1呢,在硬盘中已经不存在了,它呢在硬盘中又存在了,除非呢,你这块呢,是不是反过来啊,哎,这块呢,你写把这个二改成FILE1,它呢存在它不存在这样的去命名一下,但是这样命名。啊,你看我这是个相对路径是吧,这你得小心一点啊。啊,这是个处,那说明呢,它还是能够识别的,哎,你看回来了,哎就这个样子啊好,这呢叫rename to这样的一个方法,行,这呢是咱们说的这样的一波方法,就是对应的是咱们这一页的啊先停一下。
我来说两句