00:00
那接着我们再看一下这个这一页PPT涉及到的这样一些点啊,CTRLC它呢是关于file类的一些判断功能,全是布尔类型的。这个方法的话呢,我们就是都测一下,其实呢,呃,这个过程呢,挺无聊的啊,但是呢,你也得稍微关注一下,回头呢,你自己掉的时候呢,看有哪些坑啊,你得给它规避了。五行这呢说嗯,你当前这个file是一个文件目录还是个文件,因为咱们知道file对象呢,既可以表示一个文件目录,也可以表示个文件,那么你到底是文件目录还是文件,通过这两个方法来进行判断,只能是二选一啊,就是它不是文件目录就一定是文件了啊,然后下边exist这个呢,就是真正判断一下我们当前这个对象是不是在硬盘中存在这个对应的文件或文件目录了啊,是不是能读,是不是能写,是不是隐藏的啊这样的几个基本功能来我们这块呢,举例子啊,FILE1啊,你一个file。
01:11
哎,不妨呢,还拿咱们上边这个,诶,Hello ctrl c来举例子,这呢本质上它是一个文件了啊,这个文件呢,确实也存在,那下边呢,我们去调一下这些方法。啊,直接我就在这写了啊一啊,它叫is。Is fair。还有一点啊,叫ex啊,是不是真正存在,这个指的是硬盘中是不是真正存在,第二啊,是不是叫can read。是不是看right?哎,接着呢,是不是叫hidden隐藏的。行,这是我们存在的这样一个文件跑一下。
02:04
好出来了,我们看看这个对应关系。说是不是一个文件目录,不是是个文件吗?是嗯,是不是存在,确实存在就指的是硬盘中确实存在的一个文件啊,这能看到,然后呢,是不是可读,是不是可写,都是true,然后呢,是不是隐藏的不是,那正常,只要你这个文件存在呢,我们就可读可写了,那如果我把这个呃,File啊一哎,我们接着利用一个叫file这个位置呢,我写成HELLO1了,显然呢,此时硬盘中根本不存在此文件,再来。说是不是一个文件目录,是不是一个文件都是false。都是false,那接着你存在吗?不存在,所以这呢,真正判断的就是说是不是在硬盘中存在了啊,不存在,然后呢,是不是可读,是不是可写都是false啊,是不是hidden啊也是false,所以这块呢,就都是这些默认值。
03:02
哎,都是这个默认值的成了。这呢是咱们针对的是一个文件啊,那咱们也可以去针对一个文件目录。FILE2又一个file,哎,刚才咱们在这个D盘下啊,这边是提供了一个IO,这个IO目录呢,确实是存在的。就它啊,它存在行,然后呢,我们再去做这样的一些判断,CTRLC。哎,这个大家你就把这个情况呢,我们都见一见啊,在这个位置呢,我来一个换行。好,来看一下,这个叫FILE2 file2是不是一个文件目录是。文件不是啊,存在吗?存在,然后可读可写,也没有隐藏。啊,那对应的我们再试图改一下啊,它呢,等于又一个这个file,诶D盘下I1这个呢,不存在啊,不存在看一下。
04:11
哎,这块你看跟我们刚才说那个不存在的文件呢,其实一样,哎这个呢,你注意一下这个事就行啊,嗯,像大家呢,去操作一个文件或者文件目录,你做这些判断的时候呢,那尽可能大家先调一下这个ex。对,你先看他在不在啊,哎,在不在以后啊,在了你再可以做相应的一些操作啊,通过这个方法呢,去判断,也是我们算是一个比较常用的一个方法啊,哎,判断它这两个呢,也常常会用到。啊,这个加红的其实包括这个在内啊,这个呢,我们去关注一下啊,行,这呢是咱们说的这个叫第二波的这个方法啊嗯,那接着再往后说,下边呢,就提到了关于这个file它的一个创建。这个创建不是说用构造器啊,是呢,你有了这个对象了,我真正的呃发现呢,硬盘中如果没有这个文件或者文件目录,我可以帮你去把硬盘中的文件或者是文件目录呢给你造出来,诶这呢就提到了这个真正硬盘中的这个文件或文件目录的一个创建,用到了是这样的三个方法啊,这是创建的,这是删除的。
05:21
删除用的叫delete,行,那我们来看一下这块啊,CTRLC。转过来,这呢叫TEST6。哎,这是这个六,这呢是跟创建相关的方法。创建这个硬盘中对应的文件或文件目录,诶这样子,呃,创建对应的这个删除,我们都给大家拿过来了啊,这块呢,说了是不走这个回收站了啊,这个关注一下。
06:05
诶这呢是诶删除这个磁盘中的,或者要硬盘中的这个文件啊或文件目录。行,那我们先来看一下这个创建的这个事儿,首先我们在这呢,我写一个file。哎,我写个file,这个file的话呢,我们就自己来写一个,比如说我就写一个嗨点TXT是咱们当前D08啊,它的这个,呃,文件目录下边的这样的一个文件啊,目前呢,它还不存在,那我们呢,就可以去做一个创建,创建用的方法叫create。啊叫create啊,那我们其实也可以呢,在创建之前判断一下,说如果你这个file叫FILE1吧,它呢叫ex这呢叫存在啊,那咱们现在说不存在呢,进去所以加一个非说如果你这个文件呢,要是不存在,我呢就帮你创建。
07:03
我要file一点,哎,咱们就要啊create new一个file啊,那么这个呢,它也会出异常,咱们暂时呢先都抛一下啊,这块呢,我们写一个输出语句说呢叫创建成功。诶,这就搞定来跑一下。创建成功好收起来看这儿,哎这张就帮我们造好了,哎就造好了啊你可以理解为呢,就是相当于咱们以前呢大家,哎你这个IO下我们这块呢,点一个说new一个file这样呢,呃,其实你可以理解为在我们这呢,就相当于调的是这个方法。这名呢得先写上啊,这呢叫创建成功,那我们这么着一下吧,我这写个else啊,这呢是你要不存在,我就帮你创建成功了,你要是存在呢。这个对应的是叫文件存在啊,存在我们顺便呢,演示一下这个删除吧。
08:02
Delete是吧,哎,我们这款叫删除成功。行,我跑一下啊,像现在这个文件已经存在了,存在了就不走这儿了。执行,哎,这叫删除成功啊,你看这没了。那再来一下还有创建成功是吧,有了啊再来一下删除成功是吧,哎,就成这样了啊行这呢,我们就演示一下关于文件的一个创建啊。行,那么接着咱们说一下,这个叫文件目录的一个创建。嗯,它的一个,呃,创建这个过程啊,嗯,当然这个删除呢,咱们也说了,这个主要的我就放这儿吧,啊啊,关于这个文件目录的一个创建,我们会看到呢,上边呢,提供了两个方法,一个呢叫make d,一个叫make DS啊make MK就是make啊创建文件目录d directory是吧?嗯,加了个S。
09:13
对,这个S呢,是负数的意思啊,说我们创建一个文件目录,怎么还会有负数呢?对你这个目录当前那个目录是这一层,就你自己,你可能还有上层目录,那万一要是上层目录要没有的话呢,怎么办是吧?哎,那这呢就提到了这个哥们儿呢,就是哎,如果你要创建的这个目录的上层目录要不在,他就不帮你造了,这个呢,你要发现你要造的这目录的上层目录没有。哎,他呢,帮你一块儿创建了。啊,这呢,就咱们说了一下,下边呢,来看一看是不是这样子的啊嗯,那这块创建我又会跑上边这个代码,干脆呢再写一个得了。行,看这个事儿,现在的话呢,我们去new一个。
10:02
我呢让他呢,表示一个具体的文件目录了,具体的文件目录,首先呢,我们尽可能的让它不存,呃,不是尽可能的不存在就不让它存在啊,不存在咱们才去创建的,在这个IO下,比如说我们想创建一个IO1。D盘IO下ioe,此时注意这个ioe的上层IO是存在的啊,IO是存在的,在这种情况下呢,实际上我们这个FILE1你去调一下,这个叫make Di,还有这个make Dis呢,它俩没区别。呃,它俩是没有区别的,呃,这块我们是做一个创建,它这边也会,呃返回一个布尔类型,就表示呢,成功与否啊,我们al enter一下。哎,如果啊,这个它是一个处。哎,我们这写一下叫创建成功。
11:04
诶,这是它,那么咱们先拿这个make第二它来演示一下。哎,你看这叫创建成功,然后呢,我们回过来看一下,咱们这个下边啊,确实呢存在了啊,当然里边没有东西啊,哎,这就存在了,成这呢是关于这个它,那么我们呢,现在把这个呢,CTRLC我再复制一份,我叫FILE2啊。这个呢,我改成这个叫二。这不是此时呢,咱们这个,呃,I2本身也不存在,但是它的上一层也存在,我这加个S,嗯,相当于呢,我要创建的这个目录呢,上一层都存在此时,其实这俩没有区别,呃,上边这个呢,已经创建成功了啊,你再造它就造不了了是吧?哎,这块写这个成功,这个成功还还群不出来了,这是一个一,这是个二,对是吧,我得把刚才那个再删一下,其实是下边这个。
12:04
啊,为了让你能够看清楚,我再重新跑一下啊。看是不是这个啊,这个一的话呢,因为已经存在了,这个就没有再去造了啊,哎,相当于已经存在的文件目录,再去造的时候呢,它就是一个false啊。行这呢就成功了,那这时候呢,它们还没有什么具体的区别,它俩的区别呢,主要体现在呢,就是哎如果呢,这一层目录要是不存在,哎在后边的情况,我直接呢,就在这个上边来说了啊,我这呢写一个叫I3。这呢我也写成这个IO一下的叫IO3IIO换一个IO4吧,IO4注意看啊,我现在呢,把咱们这个IO呢,又恢复成这样的情况。什么也没有在这个IO它这一层是存在的,我现在呢想创建的是一个IO3,这个呢想创建是个IO4,嗯,本质上没什么区别啊,嗯,这块没有区别,就是名不一样而已,现在主要关注的就是IO3或者I4的上一层IO本身不存在。
13:10
那我们要看一下,就是make DR和make DS它的区别。哎,你看他成功了,那我们这块看一眼,哎这个I一下啊,I1本身也不存在帮我们造了,哎四是有的,对,然后呢,上面这个这不就它就没戏了啊,哎这个区别呢,就体现出来了。就是说如果呢,我们创建的这个文件啊,文件目录的上一层目录呢,是不存在的。啊,咱们这个make DS呢,就帮我们一并创建。啊,而这个呢,它就不会。嗯,不会,刚才有同学说说能不能把这个放上边,放上边那就不一样了是吧?哎,你这块呢,造的时候呢,就把L1帮我们造好了,那有了你下边再去造这个不就有了是吧?诶所以你看我放在上面还是有道理的是吧?啊行,那么这就咱们说的这个事儿啊,说如果此文件目录存在就不创建了,如果此文件目录的上层目录不存在,也不创建这块呢,就是如果上层目录要存在啊,不存在就一并创建。
14:19
哎,当然这个你要是本身文件存在,文件目录存在了,它当然也不创建了啊,哎,这个事。行,那这样的话呢,咱们就把这个file里边的常见的这个方法呢,我们就走了一遍,下边还有个图,这个呢想说的事儿就是,嗯,我这呢是内存中的两个对象啊,这俩对象呢不一样啊,那实际硬盘当中呢,是存在这个叫名词总结是有这个的,下边这个没有,这硬盘中没有,那么你会发现呢,诶这个硬盘中有的这个文件对应的呢,我们叫FILE1,这个FILE1的话呢,它的很多属性呢,就都有值。像长度啊,修改时间呀,是不是能读能写呀,是吧?啊这个情况,而这个只是内存层面有的硬盘中没有的话呢,它的很多属性都是默认值,咱们刚才测试呢,大家也看到了这样的情况啊好这呢,咱们把这些方法呢就说了说那后边呢,大家需要用到哪些的时候呢,你能够想到这里的方法。
15:20
那么这些方法说完以后,我们上面呢,简单做一个总结啊,说呢,咱们在这个file类中,它涉及到关于文件的,关于我们这个file啊,别直接file了,关于文件或文件目录的。是不是提到有创建啊,创建有删除也有吧?啊还可以是不是重命名啊,啊还有呢,是不是这个修改时间,这个文件大小是不是等方法啊,那么想有没有涉及到,或者刚才我们讲到去修改这个文件里边的内容。
16:03
没有是吧?哎,那么并未涉及到哎,这个修改啊,或者叫写入啊,写入或读取文件内容的这个操作啊,那么说如果啊需要读取或写入文件内容,那么我们就需要。啊,那么或者这写吧,就必须去使用咱们讲的这个IO流来完成啊,这呢就引出来了,我们这这IO流了,还回到还回到咱们刚开始一开始说这个IO流的时候,咱们现在呢,在这个内存里边,咱们把这个文件呢,把这个数据呢,写到这个文件里边,写这块你需要用流啊,读呢也得用流啊,这个过程是要跟流打交道的,但是呢,如果要不需要写,不需要读,只是说呢,诶看看你这个文件名,文件名叫啥呀,这个文件的大小是多少,这个修改时间是什么时候啊,你的这个呃,Parent上层目录是什么,是不是可读,是不可写,只是对这个文件呢进行一些简单的操作的话,我们只用这个file的一些方法就可以了。
17:14
啊,就是这样子的一个点啊嗯,行,那么咱们这个file呢,后续怎么用这块呢,写个说明就是后续,哎我们这个file类呢,哎或者这个叫file类的对象啊,常会作为这个参数传递到哎这个硫的构造器中,传递到哎的这个构造器中,哎相当于指明什么呢?我们读取或者呢是写入的这个哎三角终点吧。就是你想这个,嗯,从哪读,你想呢,写入到哪,这就算是一个终点,或者叫一个节点啊,这个点就是用我们这样一个file呢来表示的。
18:07
当然了,此时你要是真正去读写内容啊,这个file呢类的对象,它主要指的是一个文件啊,就不是一个文件目录了啊,这是这样的一个点啊,行,那么这个file类的话呢,我们就讲完了啊,对于大家的要求呢,就是大家稍微熟悉一下这里边儿的这些构造器和方法的使用。好。
我来说两句