00:00
好,那我们继续来上课,那么这节课呢,我们再来看文件的打开啊,关闭还有读取啊,那好了,那在这里边我们去新建一个。文件叫做PP文件啊,零六啊。叫做这个open。好了,那这里面我们要演示的是。文件的打开对吧?打开以后你要干嘛呢?我肯定要读取对吧?读完以后呢,我要关闭对吧?应该是读取或者协助,那就不一定了,对不对,那这里面那一样,我们先去第一件事干嘛?打开一个文件啊,打开一个文件,那用什么方式打开呢?用f open来打开,这里面需要传两个参数,第一个是什么?你要打开哪个文件,我叫做当前目录THUB下边是不是有个你好点TST,诶我就打开这个文件,打开完以后,接下来呢,接下来什么就是你的这个操作方式,那我给一个RR代表什么呢?代表的就是read读的意思啊,R代表的是re e啊读取的意思,读取的意思,现在我们是不是要读取啊?哎,那这里面我就先给一个R就行了啊R这个模式好了,那么完事以后,因为我用PP打开了一个文件,是不是返回了一个跟PP没有关系的东西,对吧,让PP做了一个跟PP本身没有关系的事,它返回一个什么,返回一个资源吧,哎,打开一个打印一下这个费,你看是不是一个资源啊这里边。
01:20
找到我的零六,你看是不是返回一个资源,哎,好了,那有了这个资源以后,接下来第二件事我要干嘛是读取文件对吧?然后第三件事儿呢,我是关闭文件嘛,哎关闭文件,那关闭文件我就直接是f c lo sf close啊关闭,你要关闭谁呢?关闭这个feel,也就是由f open成功打开的这个资源要放到这里边啊,它才能进行关闭,好了,那接下来是干嘛,接下来是不是读取了。那要读取的话,我这个文件里面得有点内容才行嘛,现在我们还没有内容啊,来我不在这里面了,我就直接,哎,就在这里面。C盘。643W下边,然后online里边零一里边的 lesson17这里边来,我右键打开,我用记事本的方式打开了,啊打开以后我开始往里面写入内容,比如说融职教育。
02:10
融职教育啊,让你在工作中学习,在学习中工作。工作,我们的网址叫做HTTP。S斜线3w.edu.cn好了,这一段内容ctrl c ctrl v v v v v v v u没换行是吧,还原一下啊。是怎么回事?我们还。我原成这么多来叫做HTTP有了啊3w.edu w.cn好了,那这个时候CTRLCCTRLV换行CTRLCCTRLVCTRLCCTRLVCTRLCCTRLVCTRLCCTRLV,再来CTRLC。然后换行CTRLVCTRLVCTRLV好了,有了很多内容,对吧,那么有了这些内容,接下来我是不是可以进行读取了,那怎么来读取呢?咱们来看啊,在这里边。
03:00
来我把它注释掉了,那接下来我们用faf RA的这个方式来读取,是不是读啊,哎,先告诉他读谁,我要读这个啊,读完以后你每次读的,那你看正常情况下,你比如说这一个文件打开了,诶哪去了。那我关掉了是吧,来再来啊打开打开的话,你也不可能一眼全都看完吧,对不对,你也是一个个或几个几个看吧,所以这里边你也告诉他你要怎么个方式进行读取,对吧,比如说我在这里边我说你读。读多少个?读两个?好读两个啊,那我先把这个文件里面东西都删掉一下啊,这里面东西有点太多啊,咱就给这些一会儿我们一还原是不是就可以了,哎,好了,就四个字啊,那接下来咱们来看他会给我返回一个什么读到的内容,Con c的内容,那这里边我们来打印。VR-DP打印一下,到了con t来这个时候我们再来访问。走你哎,读的什么东西。是不是乱码了,但是长度是不是俩呀,也就是说当我给的二的时候,它表示什么意思,是不是读的是字节对不对,那好了,那当我让他读个三,读个三的时候,什意思啊,是不是就是一个汉字对吧?但是它这里面是吗?不是吧。
04:07
哎,是不是都是乱码的,你就别管几四。是不是也是?对吧,读四个你看。是不是也都是乱码了,为什么是乱码了?因为在我当前编辑器里边,我的字符集UTF8,而我TSTTST的字符集是多少啊?字体。是不GB2312对不对,哎,所以他们两个肯定会乱码,那怎么办,那我就。这里边。给他改一下呗,对吧,改一下它的字符集吧,来看好了,我先给他改一下这字符集啊,打开呃,选择默认程序。嗯,用什么方式打开呢?我看看啊,我没办法去改那字符集了,那就用这个方式打开吧。来打开是不是有容老板了,但是我要改成融资教育,这个我重写啊,融职教育,因为我没用没用TST了,对吧,融值教育好,这个我再保存,保存完以后现在我们再来看啊,再来刷新,诶是不是读到一个容啊,对不对,哎读出来了,那再来。我读三个啊,咱不读四个,读三个来刷新,是不是就一个容,因为我现在用的这个编辑器,它也是U点八的字符集啊,那再来,那比如说这是读了一个字对吧,那CTRLC再复制再读一次的时候,你看走你是不是就值那再读一次呢。
05:16
走,你是不是就叫再读一次呢?周你是不是就预,那是不是融资教育是不是就搞定了,哎,那OK,那那既然是这样的话,我是不是就可以进行什么进行循环的去读,你看我再读一次。周你返回什么是一个控制不串。对不对?哎,所以既然是这样,那好我把它注释掉,那怎么办?我们是不是就可以使用view循环的去读啊,View循环对吧?Dollar con count等于read读读谁读这个fail对吧?每次读三个,那读完以后我这里边就到了c content对吧?那只要用循环读,我就不装三个读一个是不是都行啊?那这里边来刷新,你看融资教育是不是就输出了。对不对,哎,那读三个。是不是也一样,是不是也可以了,对不对啊,那好了。
06:00
那就比如说啊,这里面我先改回一个,我有三个也行,三个,然后在这里边我稍微改一下,在这里面我给它加一个零,看好了,我加了一个零啊,加了一个零以后,这个时候我们再来读刷新。零是不是读出来了对吧,因为这里面我给的是每次读三个字节,如果说我每次给一个字节呢,就每次让你读一个字节,是不是也可以对吧,因为我不知道内容到底多少,每次一个一个读嘛,那这个时候你看。是不是就没有了,为什么?因为读到零的时候,它是不是为false,为false,我用V循环,V是不是我们波尔值循环,波尔值循环它是不是读到了这个是零,C是零零转换成布尔值是不是就是false,对吧?False,那循环是不是停止了,是不是就是不往后读了,对不对?哎,所以这里边就会有这么样的一个问题,那怎么办呢?我们能不能去解决呢?也可以啊,你看好了,我们在打开这个文件的时候,打开这个文件的时候啊,这个文件其实是有一个指针的,你看一打开这里面是不是有个光标,对不对,那么默认我们打开光标是在这儿,你每读它会往后一个,每读一个,往后一个每读一个,我们每读一个嘛,那如果光标在最后一个的情况下,是不是就相当于这个文件我就读完了对不对,比如说这里边啊,我们给它还原来现在是不是这样的,包括这里面咱该给零给零给零给零随便给。
07:07
对吧,随便位置给零,是不是加了很多零啊好了,那现在你看我这个文件现在有了,哎,不行,它是乱码的,对吧,CTRLC啊,因为这个字母集啊,我用记事本的字母集是不一样的,你看这里边来CTRLV。好了,我给还原到这里面来了,对吧,还原到这里面来,这个时候咱们来看啊。还回来。这个时候一样,我will循环。到了C,我直接去读它肯定是不行的,对不对,等于FA read Dollar few,每次读一个字节。这里边你看好了,C到了Co TT,你看啊,我能拿到那么多内容吗?来,走你。你看是不是会到零就没有了,对吧,所以咱说了怎么办,我们要想办法判断一下,叫做判断。文件的指针是否到了结尾处吧,结尾处对不对,那用什么呢?用feof这个函数来判断啊,判断谁呢?判断这个费用啊,这个费用,这个费用是不是打开文件的资源了,来判断它的指针是否到了结尾数,它会给我一个返回值,那我们现在来看V-dop打印,打印什么呢?打印这个。
08:13
到了Rep result,好,诶不行,会报错来,你看好了,现在我们刚开始没读过对不对,这时候是不是没读过,没读过的时候我们来打印刷新,是不是告我false看到了吧?哎,False表示什么意思?表示没到结尾处,那到结尾处是什么样的,那你看好了,这里边我把它。放到哪儿呢?放到这里面来读吧,看能不能打印出来啊,来把它注释开起来诶。啊,因为每读每读一次的时候,它都会有文件指针,每读一次它都往回挪动一次啊,所以我在这里边再来读读,我再来去判断啊,每次我都打印它来你看。不管他到最后。完了读不出来了是吧。都是报纸。啊,不是读不出来了,没问题对吧,为什么它会返回放,因为我读到零是不是就停止了。
09:05
是不是读到第一个零就停止了,对吧,那好把它剪切掉啊,剪切掉以后,现在咱们再来看啊,再来刷新啊,你看。这都是法子法子,法子法子。就会。他也不给我判断了。是不是得不到对吧,那行得不到咱就别用这种方法测试了啊,那咱们怎么办?咱直接搜手册,看手册给的提示吧,来e of。那你看测试文件指针是否到了文件结尾的位置,看到了吧?哎,你传给他一个资源,他来帮你返回布尔值,你看这里面参数啊。说了文件值针必须是有效的,由谁由它打开的资源,对不对,那如果文件指针到了这个结尾处或者出错,他才返回什么返回处,否则的情况下是不是都返回一个false,那刚才看到了我们在这里边一刷新返回是不是都是false,也就代表文件值针这边没到结尾处啊,对不对?所以那这样的话,我是不是就可以这么去循环去做了,比如说在这里边啊。我们先把这个文件啊,这个文件还完了好了,那在这里面我怎么做view循环对吧?取反怎样FU判断这个费用,如果它到结尾处,返回的是这个处,处理取反是不变成豹子,变成豹子是不是循环就停止了,对吧?如果他没到结尾处,那它返回是豹子,豹子取反是变成处,变成处我是不是一直循环往下读啊对吧?比如说到了这个con,那等于等于什么?Ref read Dollar file里面的一好,那这个时候我来输出con,你看是不是也可以啊,来这个时候我整个文件内容是不是都能给我读出来,看到了吧。
10:31
是不是都给我读出来了,哎,凡是你带零的,带零的是不是都无效了,因为我判断什么,直接判断是指针对吧,让它这个就这个指针相当于什么,就相当于这里面的这个光标一样,哎,你每读一个它就往后挪挪挪挪挪是吧,直到挪到什么,直到挪到最后的时候,是不是才完事啊,哎,所以我们在读的时候可以干嘛采用这种方式来读啊。采用该方式读取对不对,那好了,那另外还有一种读取方式干嘛呢?是一次性读取一行的啊叫做什么叫做这个F。
11:02
F get。GTSF它是干嘛呢,从。文件指针中就干嘛呢,读取一行的数据啊,那一样,比如说f gets,我这里面给大家演示一下,还是从这里面对吧,不需要给第二参数,它一次可以读取一行对吧,比如我就直接Li吧。那这个时候我们再来I口到了Li Li,那你看我的一行数据是多少啊,来这里边我们刷新这是不是一行数据,一行数据里边你看融资教育让我们学这个工程学习学习工作让后我们的网址,这是一个对吧?这是第二个对吧?每到这个我不就给了一个回车,你看在这里边每到第二个完事,我是不是给了一个回车啊。哎,所以我们最终看到的就是一行的数据,那一样,既然是一行呢,那我是不是也可以干嘛让他循环的去读啊。对不对,那比如说在这里边。感觉。给他注释掉啊。把它注释掉,注释掉以后直接什么view循环糟了,Line等于什么呀,F get s。
12:04
对吧,但是如果我这么去读肯定不好,尽量我们在判断的时候动什么呀,都用文件指针U糟了F来去判断,对吧,然后呢,每次我们读一行,这没问题啊F。Get。I get s对吧,读谁读这个费,然后读完以后我们来输出这个Li好了,这个时你来看再来走,你是不是所有数据我也能读取到。看到了吧,哎,这就是我们读取内容的这个方式啊,读取文件的方式啊,好了,那么一样,我们读取文件啊,经常采用的是哪种这种方式啊,那么一样,之前我们是不是也接触过一个什么快捷的方式读取啊使用什么。使用叫做F-File杠。Get-sevens content是干嘛?也是也是读取文件吧,哎,它就相当于什么呢?相当于使用什么?使用了f open打开,打开完以后用什么方式,用R的方式打开,打开完之后开始进行什么用f read的读取,读取完之后FC。
13:04
ROS进行关闭,那你看比如说F-get-Co你要读谁读当前目录B下边的叫做你好点TST好了,那读完以后它会给我返回一个Dollar。看这个时候我们再来输出这个费用e ho,输出这个费用来,你看它是自带打开读取和关闭了,那你看再来刷新是不是还是这段内容是不是都可以读取到,哎,这就是咱们这个简写的方式啊,读取文件了,好了,那读文件现在我们会了,那接下来是不是就要写文件了。那在这里边我们再新建一个PP软件,叫做零七啊,那写的话那我就W。R。Field。写文件,那写文件第一件事你是不是也要打开文件对吧?打开文件第二件事呢,是不是写入文件呢?写入完以后第三件事儿是不是还是关闭文件,对不对,那打开文件依然是f open来打开,打开谁呢?打开当前目录叫THHUB,下边的你好点TSP,然后用什么方式,这个时候就得用W方式啊,就不能用RR,是不是读啊,用WW表示什么意思啊,表示的是W,表示是wt right写的意思,写的意思啊,所以在这里边我们再来关闭啊,不行,我没有返回值对吧费。
14:22
Dollar了,对,这个返回的资源很重要对不对,就相当于我们这里面的每一个句柄一样,你看你要打开哪个页面操作哪面,你是不是得先选中它对不对?哎,相当于这个句柄一样,所以这个资源很重要啊,F clf close,你关关谁关这个费,F file关的这个费。好了,那接下来我们开始进行写入文件,用什么写呢?FW,写对吧,往哪写往这个。到了里面写,然后你写什么内容对吧,比如说写一个叫做。清早起床啊,拥抱太阳好了,那么写完这个以后,接下来它有,它也一样有个返回指刀了。印,那大家要看一下我写了多少个汉字啊,一两三四加符号,56789写了九个对吗?那好了,我们来打印这个印的,你看它返回的什么东西啊,来这个时候我们再来访问。
15:12
我谁呢,访问这个零七。完多少二十七三九是不是27U dii8字符集下一个汉字是不是再问三个字节,那三个字节我写了九个,因为这个符号也是中文的,对吧,是不是也再问三个三九是不是27个,那么是不是成功写入27个了,那写入完以后,我们再来这个文件里面去看,诶。你好点T变成什么?清早起床拥抱太阳没错吧?那我之前的内容呢,我之前的这个融资教育我并没有删吧,你比如说这里边咱们来看啊,现在这个文件咱知道了,我把它。擦掉啊,一会咱再打开来。嗯,这里边看好了,我把它注释掉,对吧,刚才写的是这个,那再来一个啊,到int等于f wi read,我还是往费里面写这个写什么,写融资教育。中教育好就写四个字对吧,那这个时候我再来刷新告什么呀,写12个三至12没错对吧。
16:05
我再来打开它。是不是中就有了对吧,但之前那个清早起床幽默太阳是不是就没有了,哎,那么也就是说我们使用W方式去写文件的时候,它是怎么样,是不是覆盖的去写对不对,那如果一样,如果文件不存在呢?比如说这里边再看啊,我把它注册掉。我们再来测试。如果。文件不存在啊,比如说这里边还是一样刀了。等于。Oppn对吧,这叫当前目录的叫哈哈的TST,还是用W啊注意当前目录肯定没有哈哈的TST对不对,那现在这款你别写融资教育啊一样,我还是再刷新,诶又给我拿个12,那这个时候我们再来看当前目录下17这里边有没有一个哈哈,有吧,那打开。你看融资教育是不是又写进来了,哎,那么也就是说我们使用W方式写入的时候。
17:04
是不是可以看到一个问题,什么问题就是。我往哪进呢?我往这记吧,来在这里边啊,我们这里边就给大家演示一下这几个模式,好吧,来。啊,第一个使用W方式对吧,它是什么?写入文件对吧,如果文件不存在则怎么样,则会创建对吧,如果文件。存在它是怎么样,是不是清空内容后再。写入。是不是这个意思,哎,那很多时候其实我们并并不需要是这种方式,而我们需要什么呢?我们需要是以追加的方式去写入,那这个时候怎么办?我就不能用这种方式了,而是用什么呢?用另外一个比如说刀。F等于f open还是一样,我在这里边你要打开谁当前目录,哈哈,点点TST用什么方式,用A的方式来打开啊,A代表什么呢?代表ad追加的意思啊,所以这个A再来看它是这个。
18:04
均家方式写入文件啊好,那我们先来看他的这个情况啊,这里边一样,我还是写的融资教育对不对,那好了,那这个时候。这个哈哈我用一啊,哈哈一肯定是没有了,对不对,来这里边再来刷新看好了,是不是也返回12对吧,然后在这里边,哈哈一是不是又有了,打开,哈哈一。融资教育是不是有了,那好了,那现在写的是融资教育,那我这块给它注释掉,注释掉以后我再执行它,我不写融资教育,我再换一个啊,啊不用我换成它,我把它开起来啊,开起来写清早起床拥抱太阳对吧,那现在再来刷新。是不是就27,那27以后我们再来打开它,哈哈,一打开。融资教育后面是什么,清早起床优步胎,这是不是追加的方式写入了对不对,哎,这就是什么,这就是咱们这几个常用的这几个方式啊,那么一样,这个A呢,也是如果文件不存在则会创建对吧,如果文件存在什么呀,追加内容到最后是不是这个意思,哎,那么另外包括像我们刚才看到的有R。
19:09
对吧,R是什么?读取文件嘛,哎,读取文件那这里面一样啊。这个我们用R方式读取文件的时候,是不是也有R加的方式,对吧?哎,那R加表示什么意思呢?所有的加的方式都是什么,都是增强的啊,叫读写方式打开文件啊,它可以干嘛呢?可以执行部分的写入功能,执行部分的写入功能啊,那同样W它也会有W加的方式啊,它是什么呢?它也一样叫读写方式打开文件,那它是怎么样?是可以执行部分的读取功能,但是写肯定是可考使的,对吧?同样A也一样,A也有A加的方式,A加的方式,A加的方式也是什么,也是增强的,对吧?叫做什么叫做这个。增强的追加模式对吧?追加方式打开文件,那A本身是什么,写入是不是它就可以可以干嘛,可以执行部分的读取功能,读取功能啊,但是呢,这里面大家记住啊,尽量不要用这种带加的啊,你要读就纯读,要写就纯写,明白吧,你你要想一个问题,就是我们不可能在一边往出,出的时候一边往里进。
20:21
是不是这个道理,哎,所以这里面大家一定要注意啊,另外它还有个什么呢?还有一个X和X加啊,这个呢是增强,这叫X叫抑或模式啊,叫抑或模式。打开。文件啊,它也一样是这个写入。写。啊,这个呢是增强的。增。强的抑或模式,那大家想什么是抑或呀,抑或是不是存在报错,不存在则创建是不是这个意思,所以在这里面你看好了啊,我用X给大家演示一下,比如说在这里边我们就一个X方式啊,X方打算哈哈一的时候,那这个时候我来刷新。
21:02
是不是报错看到了吧,哎告诉怎么样,Feel这个T是不是文件存在啊,对不对,哎,那同样,那比如说在这里边我不要哈哈一了,我叫什么哈哈啊。我把这个还原啊来CTRLCCTRLV复制一个,把它注释掉,这个呢,我要哈哈二,然后用什么方式呢?用X的方式,哈哈二是不是没有啊,那这个时候我再来刷新音,你看写了个27那一样,这里边我再打开,哈哈二,你看哈哈二是不是内容写进来了对不对,哎,这就是易货模式啊,这就抑货模式好了,那这个f open这几个这几个。参数啊,在这里边我也都给大家记了对吧,有RR加WW加AA加,还有X跟X加对吧,成功都是返回什么返回资源,失败返回false啊,这就是咱们的读读取文件啊,写入文件对吧?写入文件那么一定要写入文件,它也有一个简单的写入的方式来,我把它注册掉了啊。这些我都给它注册掉了,那这里边叫做快捷。
22:00
的写入方式干嘛呢?叫做feel put-content。对吧,使用fair put-ZTS这个功能,那么一样限制你往哪写,比如说我往一个叫做哈哈3.ts里边写是不是没有这个写什么内容,我是你的优乐妹好了,有类没就有类没吧,啊那接下来他也一样会返回一个。写入的字节,然后我们来打印这个。到了印子好打印,印了以后这里面一定要给它缩进一下这个格式,这个编辑器,这个格式排版不是太好。好了,这里边一样,我再来刷新,是不是写着二十一二十一以后,那我们再在这里边再来看哈,三是不是进来了,进来以后来打开这里边。我是你的优乐美。是不是进来了对吧?哎,那比如说这里边再来一次,我再写一次呢,比如说CTRLCCTRLV。来看好了,我不写它了,我写什么呢?我写的是。那么。请问。
23:02
那么。请问你是我的什么?好,那这个时候我们再来看,再来刷新,诶34个也没问题对吧,那好了,那返回到这里边,我把它给它关掉啊关掉关掉以后重新打开。来重新打开,打开以后你干什么?那么请问你是我的什么?是不是把之前那句话也覆盖掉了,哎,所以这个家伙飞入刚扑到刚考他在默认的情况。什么样的,是不是也是使用open f open的这个w fo的W方式打开文件的。打开文件对吧,然后写入文件,然后关闭文件,是不是这个意思?哎,那么如果我想用它使用追加怎么办呢?那我就需要设置它的下一个参数Dollar int,比如说咱们看啊,到了int等于feel-put-c content往哪写还是往哈哈三点里边写,写什么呢?写我是追加的内容,然后给他一个什么,给他第四个参数叫做什么叫做feel。
24:03
Fi。APP引end啊,非洲港的end什么意思,追加的方式啊,追加的意思好了,那这个时候我在VR。We。的uip我们来打印,打印谁呢?打印这个is来,你看能不能写进来啊,再来刷新,OK21对吧,21后,现在我们再来看这里边打开我的这个,哈哈三来你看,那么请问我是你什么,然后后面是不是我是最加内容,是不是加进来了,哎,这就是以追加的方式去写入我们的文件啊好了,那这就是咱们文件的读写的操作都已经OK了啊,那么咱们这节课到这里,下节课呢,我们就利用我们文件读写的操作去做一个什么呢?去做一个留言板的功能啊好,那这节课我们先到这里。
我来说两句