00:00
行,那么关于我们这个读数据这呢,就以这个file reader为例呢,咱们把这个事呢,就讲完了,讲完以后呢,我们下边呢,就说对应的另外一个操作叫做写出。哎,Test这个我们叫file writer了。哎,这个呢,我们叫数据的写出说这个从内存中。啊,写出数据到咱们具体的一个硬盘的文件里。哎,平判文件里,现在呢,咱们就做这个问题,暂时呢,先不考虑这个读入的事儿,就是单纯的说一个写出的事儿啊,那写出这个套路呢,其实跟刚才上面呢,也是类似的,第一个首先呢,是不是去提供我们file类的对象,这个对象呢,相当于就是指明指明我们写出到的这个文件是吧?啊,写一个file啊,File有一个file行这个位置呢,我就写了一个啊,比如我叫hello1.txt啊叫hello1.txt这块没有啊,这个咱们相对路径我用的是单元测试,还是在当前model下的,接着接着。
01:13
你现在呢,写出到的位置指定了,下边用谁写出啊,就得需要去提供啊,这个file叫writer,哎,提供它的一个对象啊,用于哎数据的一个写出啊,咱说本身这个文件呢,它本身没有读写数据的能力,得用这个流才行,那下边我们就file writer。等于new一个叫file write,那这里边咱们把这个file呢,就扔进去,表示呢,我写出到的一个端点就是你有一场al enter先throw一下啊,那么第三步还是那个套路上面呢,咱们叫读入的操作,这呢就是叫写出的具体的操作了,那这个咱们这是咱们这个核心啊,那第四步呢,是不是又是这个流的关闭啊。
02:05
哎,流资源的一个关闭操作,所以我们这一章呢,其实就是这个套路。这个套路呢,大家通过我们写的这几个例子呢,去强化一下,Close一下,OK,那现在的核心呢,就是我们看这个写出的这个操作了,写出写出读入呢叫read,写出呢就叫做right。点来做一个right写出,那写出你可以写出一个叉形数组,也可以写出一个字符串都可以,那简单一点,咱们就写个字符串吧,比如这里边儿我们写一些数据。写些什么数据呢?说比如I啊have啊a dream是吧,这比较经典的啊,马丁路最近的这个演讲,哎这儿呢,我就写了个字唱,那你要说这个位置点后边我来一个叫突叉位。就相当于换成另外那个数,这个数组的那个方法了,是吧,哎,所以哪个都可以啊,哎,这就是插生数组了,你要不加它,这就掉的那个字符串那个方法都行行,这呢是写了一句,你要说。
03:10
还想写一句,那就再写一个right。啊,再写一个说you,嗯,也应该have a dream是吧?啊,You need to啊,Have,这个语法上对不,Need todo啊,你需要也有一个梦想是吧?行呃,这样写了一下啊,写完以后我们最后资源关闭了,这呢就不用整循环了,就是你想写什么你就往外写呗。这样啊,你要说这一行写完以后,下一行想换行,目前呢,换不换行呢,不知道跑一下看看,注意我现在要跑了啊,我要执行的时候,你注意这个文件呢,现在不存在啊。不存在的话呢,我们之前看会不会报错走,你看走过去了没有报错,没有报错呢,你这块看一下,诶还真有了,那说明跟咱们读物呢还不太一样。
04:08
啊这呢,一会咱们写这个说明,这个写出的时候呢,这个文件呢,不存在,它会自动的帮我们创建,也没有报异常,那打开打开呢,你发现诶这个数据还真写进去了,看就写到这了。没问题吧,没问题好,那那现在呢,说我想这句话和下一句话中间呢,换一下行啊换行,那你就这块加一个杠呗。对吧,加刚才你再跑,这时候你要想个问题,我现在这个文件可是已经存在了啊,我已经存在了,你说我这时候再去往里write,是在刚才这个文件的基础之上往后补着去写,还是说呢,把这个文件替换,这应该是两个不同的事,对吧。那你看我操作一下啊。完事了,现在呢,我们打开。
05:02
换行了,你说这这怎么解释,是不是把这个文件做了一个覆盖啊。对吧,哎,文件做了一个覆盖,哎,这就是我们这个特点,行,咱们在这呢,说明一下,说来说明。啊,第一个点说呢,呃,这是咱们这个输出操作,输出操作呢,我们说这个对应的这个file呢,是可以不存在的啊,就是说如果不存在啊,在这个输出的过程中啊,是不是会自动创建啊,此文件咱们刚才第一次演示的时候,HELLO1呢不在咱们呢这块直接执行,没有报异常,它帮我们自动把helloe这个文件呢就造好了,诶然后接着往里边写数据了。这是我们说如果要是不存在啊,哎,这样的一个特点,那再一个点,那如果要是存在呢。
06:06
如果要是存在,我们发现呢,是不是对原有文件的一个覆盖啊。是吧,你看原来那个文件内容不都没了吗?啊,是对原有文件的一个覆盖,那这块其实在准确点说的话呢,其实就得不能泛泛的去说是对文件的覆盖了,这块呢,就得看谁呢。还有个事儿,就是我们这个file reader啊,它呢,其实后边呢,还可以写一个参数啊,比如我们看我这写一个true,你发现诶它没错是吧?哎,那能写出是不是能写false啊,哎,那这个第二个参数它是什么意思呢?对end就是添加或者追加的意思,我这写成个false表示的就是不在原有文件上追加,那其实这个它表示的就是对原有文件的一个覆盖。那如果我这个位置写成是一个处,就是在如果你本身这个文件如果存在的话啊,我是在你现有文件的内容的基础之上,不覆盖文件了,我后边呢,接着你往后openend添加。
07:12
哎,你看我现在写成是个处,我现在呢再跑一下。执行成功,大家看是不是在原有的内容上再追加了啊,就成这样了,那我要这写成是一个false就是false,其实就咱们刚才只有一个参数的这种情况,它是对文件的一个覆盖。你看。哎,就这样啊,所以这块呢,这个点其实细节说呢,这里看你调哪个构造器了啊,说如果呢,这个呃,对应的file可以不存在的,这其实是可以不存在的啊,这个咱们这个写个第二个吧,啊可以不存在,说并不会。并不会报异常啊,这是第一个问题,第二个问题呢,就涉及到我们这个file啊。File对应的硬盘中的这个文件啊,说如果要是不存在。
08:05
文件啊,他说C如果要是不存在这个呢,我们就自动创建了,说如果要是存在存在这块呢,我们就得看你调哪个构造器,说如果这个流使用的构造器。构造器是是谁呢?咱们现在用的是file啊,以它为例,File writer这个呢,就是你这个file对象这呢,我们写的是一个,先写这个false吧。用的它或者呢,你用的是这个叫file writer,你就光写这个file。像这个呢,其实默认的这个也是false啊,如果你要是用的是这个构造器啊,它呢相当于是对呃文对原有文件的一个覆盖。我就呢,呃,新造一个文件,把你原来的文件呢,就给覆盖掉了,那么那如果呢,你流使用的构造器是这个改成是个处。哎,它呢,我们说就不会对原有文件覆盖。
09:06
啊说,而是在对原有文件。基础上原有文件基础上追加那种。就是往后接着写。能理解是吧,哎这呢,就是我们说这个叫输出的这样一个操作了,哎这就完事了,好这个事儿呢,我们就说清楚了啊,这就说清楚了。
我来说两句