00:00
然后呢,接下来咱们具体呢,讲了这样的一些流了,首当其冲的就是最基本的叫节点流,节点流呢,咱们上来是先来讲的这个字符了啊,因为咱们这拿一个文件啊,先把这个内容读进来,那文件呢,这个是文本文件,哎,所以我们就用的这个叫节点啊这个字符流了,行,那这块咱咱们先找到咱们的。哎,File这个reader和writeer这块啊,嗯,首先呢,咱们是使用的一个叫file reader,嗯,File reader的话呢,这个知识点呢,倒是我想把它粘过来,CTRLC一下,哎,知识点粘过来,但是呢,我们这个粘一个比较标准的一个这个file reader的使用啊,那这呢,我就粘这个reader使用这个,诶数组的这种方式啊,所以呢,我把它粘过来,来CTRLC一下。来这个啊,嗯,这里边儿这个错误啊,行都保留着吧,嗯,主要呢,这里边大家难点啊,咱们这一章的难点就是这个位置。
01:04
啊,这个不是这个位置啊,这个位置。这个位置呢,咱们用的read的方法啊,是只有一个参数的,你要看一下我们API这个readid呢,它也有三个参数的,那上课呢,稍微说我啊,那你就用这一个参数的,然后这块一定要小心,我们这个参数呢,还有零和LN,哎,否则的话呢,你要是这样写,这就错了。哎,这个咱们上课也都讲过了啊,行,然后在下边这个资源关闭,我们呢,这得用try catch finally哎这样的去处理啊这呢是一个标准的写法,呃,小心一点就是这个你别忘了写这个不等于no啊,避免是这个控制人的异常,行,这呢是关于这个叫file reader,然后file writeer,哎这呢就是写出了,写出呢这不咱们就提到了说关于写出的这个文件是不是非得要存在的这样一个问题啊,说呢可以不存在啊,不存在呢,我就自动帮你创建了啊这个事儿啊,那你要是存在存在呢,到底是覆盖文件还是覆盖文件内容,还是说呢叫追加文件内容啊这块呢,我们提到了啊,这样的话呢,是对原文件的覆盖,这样的话呢,是也不是算覆盖文件内容了哈,是追加,呃这里边大家注意哈,有这样的区别,呃第一种呢,这种就是呃,这个文件在了,我不管你里边写的什么,我在那呃去再造一个,呃再输出一个文件跟你这个文件名。
02:27
一样了,我们就把这个文件的整个覆盖掉啊,你这里边写什么,就以它为主,这是我们说的这个事儿,然后下边这个事儿的话呢,说这个文件呢已经存在了,我呢并没有把这个文件呢给它删掉,而是呢去改它的内容,改内容分成两种情况,一种情况呢,就是比如我们这里边写了个abcd。我现在呢想写一个叫hello,写出到我们这个文件里边,我现在呢不是就是不是对文件的覆盖啊,对文件内容的覆盖,这呢其实分成两种情况,一种呢,就是在你现有的文件内容的后面呢去追加啊,就是相当于把这个哈呢写到最后了,这是一种啊。还有一种处理方式呢,就是我呢不是在后边追加的,而是一上来就对你这个文件呢进行覆盖。
03:16
哎,我就写成个hello了,写hello有同学可能想,诶,这不相当于是把文件覆盖吗?那不对,我要是ABCDEFGH,我写的多一点,你要是hello呢,去覆盖文件这个内容的话呢,那就hello把这五个改了,后边这几个还在啊。嗯,咱们现在说的呢,实际上是刚才说的是追加,不是这种,那谁是这种呢,咱们讲的叫rhythm access file啊,就是讲到这的时候呢,它是刚才我说的这种。他也不覆盖,呃,他也不去说对文件覆盖,它呢也是覆盖文件内容,但是呃,处理文件内容,但是文件内容呢,它不是在后边追加的,它默认呢,就是从这个文件的开头呢,去覆盖你原有的文件内容啊是这样的啊,行能清楚这样的这个事儿啊,这呢是咱们说的这个,呃,关于file writer的一个说明啊,那接下来呢,我们写了一个标准的一个输出的代码。
04:17
哎,咱们就以这个为例写了一个啊,CTRLC。哎,这个大家呢,就是刚开始学编程,还是要多接触一些这个标准的一些代码是什么样子,标准的呢,你记住以后写出以后,哎,再来回变,哎你这样也没事啊,就一开始的时候,别最标准的一个也不会写上来呢,就一顿改,改完以后最后也不知道到底标准的应该怎么写了,这呢就是个标准的啊,涉及到我们刚才说的这12344个步骤,过了再接着呢,我们提到了,呃,这个输入输出合一起实现一个复制,那因为咱们现在用的是这个呃字符流了啊,所以呢,咱们实现的是一个文本文件的一个复制了啊,就相当于把它俩呢合成一个。
05:00
嗯,Readr啊,我看写的是法,就是这个例子啊。哎,CTRLC一下,哎这样的啊,这里边呢,咱们写的一个关闭的方式一这个一跟二啊这个我也都留着吧,哪种都行,然后上边的话的话呢,呃,其实呢,就是把它俩合一起了,嗯,没太难啊,嗯,主要呢,关注的就是还是这块核心的这个位置。这个都加一个括号啊,还有我们的这个输出的right的这个位置。这个呢,是大家写的时候呢,容易出错的地儿啊。好过了,嗯,再接下来我们以这个字节流啊又进行了一个说明,那这块在写的时候其实就比较简单了啊,因为有了上面我们说的字符流的一个经验了,下边写的无外乎就是把我们这个数组呢变一下,改成个back类型的,顺便呢,你再知道他们两个适合用来处理什么文件,哎,就OK了啊所以这个结束以后,我们讲了一下这个字节的啊,这个字节的话呢,我们主要说的这个结论啊,这个大家要记住啊,这是我们这个结论了啊,那么主要呢,咱们使用这个file input stream file output stream用来处理这个非文本文件,咱们最后呢,写了一个方法啊,这呢就实现图片的一个复制了啊啊,咱们呢,造了一个方法在这,嗯,咱们粘这个吧。
06:24
哎,这个啊,CTRLC一下,哎这呢也是一个标准的一个代码,哎这里边仍然体现了咱们说的这样的几个步骤啊,第一个这个我就简写了,哎造文件哎第二步哎造流哎第三步整个呢,一个读写的过程啊,就要复制的过程,第四步哎对关闭流资源哎就这样的几步。那核心的呢,还是我们这个复制的过程当中,大家写这个代码的时候。还是这个位置啊,行,这是我们说的这个,呃,这个file input stream和file output stream大家呢,主要关注的就是它两个流呢,主要是用来处理非文本文件的啊,当然了,我们又补充了一句,说你要是想复制一个文本文件,仅仅是复制啊,这个也可以用我们说的这个,呃,这两个流啊,你别在这个内存层面呢去看啊,就是你别让它去转换成字符,只呢是搬运一下,不去转换啊,那就没事好这呢是我们说的它的一个使用啊嗯,那么下一个呢,咱们在整个呢讲解这个过程当中提到了一开始这个文件,这个文件的话呢,咱们呢,这块都写的是一个相对路径,所以这呢,我补充了一点,大家写的时候你要注意在idea呢和eclipse当中,我们这个相对路径的写法呢,稍微有点区别啊,这个咱们先先先说一下这个idea吧,在idea当中呢,大家啊,如果使用这个单元测试方法啊。
07:55
哎,这个呢,我们说这个相对路径啊,是基于咱们当前的这个module的,哎,基于当前module的啊说呢,哎,你如如果呢,使用咱们的魅方法测试啊,啊那相对路径,哎是基于。
08:15
呃,当前的这个工程的,哎这个呢有个区别,哎,因为呢,咱们一开始呢,在这写的时候呢,下边你去这个输入流对接的时候,它会报一个file not found exception,哎,你要真正这个位置没找到,那就报这个异常了,你得知道呢,诶是不是真的有啊,你别一看,诶这不有吗?哎,你得看清楚你到底是相较于当前工程还是相较于当前module啊这个事儿啊,然后呢,在咱们这个ecl当中哈,它呢咱们呢,因为写的都是没有module的概念了,都是一个一个的product,所以说呢,不管你是用单元测试,哎单元测试方法啊,还是我们的main方法,哎他们呢,都是基于当前工程的。哎,都是基于当前product的啊,行,这个就没啥了,过了。
我来说两句