00:00
那刚才我们说了一个这个同步文件写入,还有异步文件写入,那这两种方式无论哪种,其实它都比较麻烦,所以这两种方式我们在日常开发里边的麻烦用的不多啊,不多,但是这一块这两种方式可以很好的看出我们这个同步和异步的一个区别,所以我希望你把这两种方式写一下,好好的体会一下这个东西,那接下来我们来说一下我们常用的一些方式啊,常用一些方式来我都会关掉,在这我们来新建一个文件名,新建一个GS文件,我们叫什么呢?叫做一个零四,诶叫做一个。简单文件写入,哎,简单文件写入,简单文件写入一看名字就知道很简单对吧,很简单,那这块我们来看一下,那这个怎么写,简单文件写入也是注意啊,简单文件写入也分两种,同步还有异步,但是操作方式都是类似的,我们演示一下啊,这边我们来说简单文件写入,我们先说这什么呢?这个异部分这块直接来看一下叫什么呢?也叫FYS,一个叫什么呢?一个这个right,但是它叫什么呢?叫right fair right file,还有一个red file sync,这两种方法啊,我这来复制一下简单文件写入说的是这两种,Right file,还有一个是red file sync。
01:30
一个是异步的,上边带扣bag,这是异步的,下边不带回调函数,这是同步的啊这两种方式啊两种方式好,那现在我们来看,那这个怎么用啊,怎么用啊,那其实一看这参数基本上也明白一半了,那首先第一个参数叫做一半file是什么呀?是我们要操作的这个文件的路径,就是你要操作哪个文件,你先告诉他啊要操作文件的路径。第二一个我们叫什么呢?叫data data什么意思呀,数据,哎,数据你要写入文件这块要指定什么呀?哎,指定我们这个要写入的这个数据啊数据,然后这个options options什么玩意儿选项,或者叫做一个什呀配置啊配置信息,那这块是我们一个一些这个什么呀,选项可以什么呢?可以对什么呀,对我们这个写入进行一些设置。
02:28
哎,进行一些设置,但是注意这个是什么参数,可选参数,写不写都行啊,写别都行,待会再说它,所以这块我们给它省略,然后第四一个参数叫做一个call back扣back什么呀,回调函数,这是干嘛的,这是当我们这个写入完成以后,哎,执行的这个函数,那我们来看这怎么用,直接写了,先来引入我们这个FS模块,直接挂一个FS,等于require FS,然后呢,我们来一个FS,点一个right five,先来一个pass,来一个什么呢?Hello,点一个这个hello 3.1个这个T,然后第二个才是我们叫什么。
03:16
叫data,是不是我们这个数据啊,哎,数据来写一个,哎,这是什么呀?哎,通过我们这个red fire,哎这个写入的一个内容,然后最后一个还要传一个回调函数function,那这个回调函数我们来看看它有哪些参数,直接看文档function,我们这个right call back。Back这一块我们直接看这例子吧,它这例子到里边就一个什么呀,就一个error啊,就一个error,那所以这里边我们就不管它了,我们也是这就一个什么呀,Error这里边我直接来一个if一个error,如果没有错,我就cancel.log1干嘛呢?哎,写入成功,写入成功你会发现这回我还用不用打开文件了,用不用关闭文件了,不用了,直接是不是一一步搞定啊,哎,一步搞定啊来我直接运行走,你是不是写入成功了,嗨,Hello 3.pi。
04:15
是不是写进来了,简单吧,哎,So easy啊,So easy,所以这块我们可以用这个right file来进行操作啊进行操作,那right file s呢。是不是更简单呀,回到函数,你是不是都不用传了,哎,都不用传了啊,所以这叫有一个简单文件写入,这个就已经是不是非常非常的简单了,哎,非常非常简单了啊,好简单文件写入,然后我们再看,诶那同学说了,老师这东西怎么这么简单呀。你们不关系,怎么这么简单是吧,哎,只要简单就行,为什么这么简单啊,其实这玩意儿跟我们之前写那个是一样的,跟我们同步异务写的是一样的,它只是把那些代码它给干嘛了,封装起来了,所以你要一点开,注意啊,按着CTRL去点可以查看它的什么呀,源码啊,按着去点可以查看源代码,我们来看啊,它里边有没有是不是也掉了,掉完了以后这掉了一个扣,这是一系列往下,它这里边就掉的这个。
05:18
掉的比较乱了,咱们就直接点开看一下吧,这里边我们这来看这它在这掉了一个这个open啊,掉了一个open,再往下这块有一个什么呀,是不是掉了一个这个啊,实际上是它是通过我们来看一下吧,他这个代码写的乱,如果要看一下,我们来看这个是我们刚才调的那个right fair,需要这么几个参数,Pass data option,还有一个扣back,这里边方法是不是写的很多呀,然后这掉了一个这个open,是不是先来去打开文件,然后这调回调函数啊,在回调函数里,它掉的是一个扣bag,这个扣bag什么时候掉的。
06:01
出错是这的吧,哎,出下时没出错的时候是不是掉的这个right fd啊,哎,Right fd right fd它掉的是不是这玩意儿啊?哎,Right fd fd里边是不是掉了一个right o啊,哎,O跟哪了?点开来看right在这了,你看掉的是不是掉的right,哎,掉right right里边又掉了谁呀?Close看到了吗?其实虽然我们这写的很简单,但是它底边是不是比我们写的还麻烦呀?哎,原理都是一样的啊,原理都是一样的,所以这里边只是把我们这个代码进行了进一步的封装,但是我们用的时候是不是还是用这东西更简单呀?哎,更简单啊,好,这是我们说的一个right file,然后再看我们这还有一个参数叫做一个options,以后注意看到这个options,一般情况下它都是需要一个对象作为参数的,所以注意看到option一般都是一个对象,那什么是对象啊,我们来看它这需要传以什么?看这里边可以传三个参数,一个是我们这个coding,还有一个是我们这个model,还有一个是我们这个flag。哎,Coding什么呀,你可以指定编码,Model呢,你可以指定我们这个文件的这个权限,但是这东西我们一般干嘛呀,都不传啊,都不传,然后flag是设置什么呀,我们文件的这个操作的这个诶。
07:25
操作形式,你是想读还是想写,还是想写别的操作,这是指定一个,它默认是什么呀?是W,所以这options一般我们都是干嘛呀,省略不写的,一般都是省略不写的,你说我要想写怎么办?比如说我想传一个flag,我不想传W了干嘛呢?哎,咱们来在这传一个第三个参数,直接来一个对象,直接来一个对象,对象里边什么呀,Flag,诶这是flag还是flags。Flag,哎flag flag呢,然后我这来一个来一什么呢?来一个W,哎,W那这个时候是不是就是去写这文件呀,好,你说我不想传达来一什么呀,来个阿尔法行不行了,哎就不行了啊阿尔没出东西啊,没出东西说明这这干嘛了,报错,哎说明这就已经出错了,来我们这来运行一下是不是就出错了,告诉你这个权限不够啊,权限不够,所以这里边注意我们这儿一般其实都可以省略不写option,他应该把这些东西是不是都给我们设置好了,哎设置好了啊好,这是我们说的简单文件写入,那我们那个同步版本还用个演示了,是不是就不用了,哎,就一个套路啊,就一个套路,然后我们这块再补充一点内容,补充个什么内容呢?那现在我们先说什么呢?现在你注意啊,我现在一写内容,你看现在里边是不是有一段内容啊,注意啊,我再写一下。
08:50
我再一写里边内容有没有,或者这样吧,我写一个这个,哈哈哈哈哈哈,写一个看着啊,然后我通过我的程序是不是又往这文件里写内容啊,哎,来看啊,我直接运行走。
09:07
干嘛了,没了,为什么没了呢?哎,这个文件写入默认情况下,这个W的特点就是一写就全都给你了,是开始给你,给你给你盖,有一些开始,哎,我想在后边写,说白了我是要往这里边去追加内,而不是重新去盖吧,那这要怎么办?这要么办?诶来,那回到我们这文档里边,注意了这个W,我们这个操作符这个特点就是什么?就是从头写啊,就是从头写,所以如果你不想从头写,我们需要在这儿来做文章,这个flag我需要干嘛呢?换一个啊换一个,那这个东西可以换成什么?在这儿我们来看,这里边我们列出来几个打开状态,所有打开状态我们来看,刚才我们用的是什么呀?W叫什么?打开文件用于写操作,如果不存在则创建,如果存在则截断,什么叫截断,就是把这个文件里边原本内容全都给它干掉,全都干掉,从头起,这叫做一个阶段,但是现在我们说这个是不是太狠了,我不想截段,我想干嘛呀,我想往后追加怎么办?是不是有一个A呀?哎,A pen叫打开文件,用于追加,如果不存在则创建,那我们来看一下我干嘛呢,我把它改成。
10:41
然后我在文件里再写点内容吧,我改一个啊,这来一个,哈哈哈。诶保存就写个它啊,就给它这还有一个大的呢,这五这个是吧,诶写这两个是吧,写两个我们来看追加什么效果啊,然后这直接运行是不是又写入成功了,这回再看。
11:07
前面是不是还在呀,来我在写运行是不是永远是追加呀,哎,永远追加,所以在这儿可以用A来表示追加,所以我们常用的其实这么三个,一个是R读取W写A是什么呀,追加,当然还有一些其他的,比如说有一个什么呀,有一个这个R是读取R加呢是什么呀。读写文件啊,读写文件,所以这你在写的时候,你也可以用什么呀,你也可以用二加二二加直接运行走,你是不是也可以写入成功啊,诶他他。后。诶,他这个我看看啊,咱们再写一遍啊,写入没成功,写入一个是吧,然后再写一下啊,我们来看它是不是。刚才是错觉吗?我们再运行一下啊。
12:04
刚才好像是视错觉是吧,咱们就不管他了啊,他不应该是追加的效果,他是不应该就是二加干嘛呀,叫什么呀,读写文件就是说什么呀,你既可以读是不是又可以写呀,看上去是不是跟W差不多呀,但是它不太一样,人家说了文件不存在则出现异常,W什么特点,如果文件不存在,它是不是就创建了,哎就创建了,而我们这个R加呢。文件不存在是报错了,哎,就出现异常了啊,所以注意它是有区别的啊,那所以这里边注意操作符我们根据需要选择我们需要就OK了,比如说有什么呀,有这个WX打开文件用于写操作,如果存在则打开失败,那你说这什么意思呀,只能新创建吧,有就不行啊,有就不行,然后W加用于什么呀,用于读写,如果不存在则创建,如果存在则阶段它比W就多了一个什么呀,写的功能啊,写的功能,那这个WX加是不是也一样啊,我就不一个个说了啊,待会我们用的时候可以再去参考出去挑一下,但是其实最常用的是RW,还有这个A啊,这三个啊这三个好,那这是我们第一个这个操作服的一个问题啊,我们这来说一下这个操作符,这个flag flag什么值啊,第一个我们来说R叫什么呀,叫做只读,哎只读W叫什么呀,可写啊可写。
13:34
然后A要什么呀,追加啊,追加这么几个啊,常用的其他的都是在这几种之上去扩展的啊扩展的好,然后说完它呢,再说我们这个文件的一个路径,现在我这用的是不是一个相对路径啊,相对路径特点,我这读我是不是只能读我这的文件呀,那假如说我干嘛呢?我C盘有个文件,比如说就这个,我桌面上有个文件,我想去写这个哈,点T我要怎么办?那要怎么办,我们先给它删了,我想往桌面上写了一个hello.t怎么办?那这一块我是不是先要获取我桌面的一个路径啊,哎,桌面一个路径,桌面路径干嘛呢?完了这还复制不了,找到我们的这个,我的这个文档,然后我这个是desk。
14:22
我的文档。它不在这儿是吧,我得找一下计算机C盘我们的这个,诶我这傻了,我这桌面有文件夹呀,我这直接一复制是不是就有了呀,是不是这个路径了,哎,这个路径我直接CTRLC,假如说我要想往桌面上写文件怎么办?比如说我的路径是这个下边谁呢?下边的一个哈,点T那怎么办?那其实很简单,路径都整过来了,我直接换成这个路径是不是行了呀,所以注意我这个路径可以是什么呀,可以是绝对路径啊,可以是绝对路径,这就叫绝对路径,是不是从C盘开始写的呀,但是注意问题来了,你看这这是感觉好像不太对呀。
15:05
这哥几个怎么这么特立独行的呢?哎,斜杠是什么转业字符,所以他把斜杠U是不是当成一个转义字符了,而我们这块是不是转义字符不是,它是不是就是一个单纯的鞋盖啊,很单纯很单纯鞋盖那怎么办?哎,那你再来一个鞋杠,你告诉他这个就是鞋盖,你自己转移,你自己别转移,别人能懂这意思吗?这样我这一改,然后一保存,咱们看桌面上啊,咱们现在先看有没有。现在没有吧,哎,没有来,我这应该在这儿出现是吧,在这儿出现啊来运行一下走。诶,完了我还说呢是吧。啊,二加是吧,改成W好咱们再看啊,在这出现啊,再说一遍来运行走,你你还不出来,哎,是不是出来了这一点。
16:02
是不是就OK了呀?哎,所以注意,如果你要写到词外的其他位置,也完全可以使用绝对路径没有问题,这个路径可以这么写或者干嘛呢?或者你换成那个鞋盖,我们注释的那个鞋盖直接写一个这样干嘛呀,也是可以的,就不用再写,再写俩了,效果是一样啊,效果一样,直接运行效果是一样啊,这里边可以写这个接路径,看明白了吧?哎,这是简单文件写入,那接下来你们来把这个简单的这个异步写入还有同步写入都来操作一下啊,来操作一下好。
我来说两句