00:00
好,那打印流说完以后,我们呢,还有第三个不是特别重要的这个处理流,哎第三个呢,就是我们要说的叫数据流。叫数据流,这个数据流它对应的是有两个类啊,叫data input stream和诶data output stream。你看这个名字你就知道啊,Data数据嘛,那数据流,那么数据流是干什么用的呢。哎,它的一个作用好看一下我们这个PPT说数据流,说为了方便去操作Java语言中的基本数据类型和string,我们呢可以使用数据流。ER2G呢,就是它的这个作用就是来操作基本数据类型和润。你操作它是操作什么呀?哎,我们呢,可以把咱们的这个流,哎回头呢,对应到一个具体的文件当中,我们呢,哎调着里边的方法,说白了就是可以用来保存。
01:03
就是我们把这个基本数据类型,你看这里边呢,这八个这都是基本数据类型,也可以呢来操作这个字符串,它呢就是字符串,哎,其实还可以操作字节数组啊,就是呃,我们呢,如果你调RA方法,相当于我们可以把内存中的这些基本数据类型或者是字符串给它写入到一个文件当中,给它固定下来。啊,同时的话呢,你也可以把呃,硬盘中存在的这个写出去的这个文件呢,你再给它还原到我们内存的这个层面形成,或者要这个对应到内存当中的一个一个的基本数据类型,或者是四。比如说啊,大家呢,有这个年龄啊,12岁啊,姓名呢叫汤姆。这个是不是一个男的呢,啊说处像这呢,都是咱们之前呢,定义的一些基本数据类型,或者是字符串,这些数据呢,咱们付给一个变量,但是变量的话呢,它只是在内存层面的这一掉电,那就没有了,那这样虚拟关掉已没有了,那这时候呢,我们说可以把这些数据,如果你需要的话啊,你可以给他持久化到一个文件里边。
02:09
啊,当你哪一天呢,再想用,你可以再去读这个文件,把这几个变量再还原到内存层面,形成一个一个的变量,那么这里边儿就涉及到写出去和读进来,就可以用我们这里提到的这两个流。哎,就可以用它俩了啊行,这呢我们提到嗯,它俩的作用呢,就是呃用于呃相当于是呃持久化啊或叫读取或写入吧,哎或写出啊叫基本呃数据类型的变量啊或子物串啊,就是这样的这个作用啊,那咱们下边呢就来举例子做一个说明,这个大家体会一下就行。好,那你说我现在是先写啊,还是先读啊。
03:00
是不是得先写出去啊,要不你这读的话从哪读呢?哎,咱们先写出去,先写出去,写出去是不是得这个得用它啊,然后CTRLCCTRLV啊DOS等于一个。哎,Data output stream,然后呢,一点小括号,哎,在这里边CTRL的斜杠还得需要传一个输出的位置啊,那我们就new一个file,哎,Output stream。哎,你呢是叫节点流,我那叫处理流,所以把你包住嘛,哎,这里边可以去扭一个file也可以不用扭了,咱们也说过了啊,直接呢,是不是写这个位置,对啊,那这呢是咱们这个具体的得塔了,我就写个得塔点,比如说叫T吧。这样啊。行,这呢,我就造好了一个叫数据的一个输出流,下边呢,我通过DSDOS我就可以去write了。哎,Right,哎,大家就能看到我们可以write叉叉叉不同的这个基本数据类型,哎包括呢,我们说的这个哎字串,比如我们先写个字创说姓名啊,姓名呢,比如我写一个啊啊比如说把咱们班谁存进去呢。
04:13
嗯,这个刘建臣。诶,这呢是一个字符串,然后DOS点,哎,我呢再去write一下他的年龄,年龄是一个嗯,In的类型,这呢我写一个比如23岁啊DOS第二再去write一些其他的类型,比如说这个啊布尔类型啊,假设你知道这个布尔型你是什么意思啊,是不是男性啊,比如写个true。这呢我们就写进去了,那这呢,我就做了一个write啊,这个呢,Write的话呢,你也可以怎么着呢,在每次这个呃,写完以后呢,加一个flash就显示的,让它刷新到我们这个对应的文件当中啊,就写出啊flash。OK,这么多异常al enter一下,我们给他,我这就先了啊这呢就是一个写出的过程,那写完以后呢,我们就DOS点做一个close关闭就OK了。
05:10
啊,这就这样啊,哎,咱们相当于是下边演示。啊,就是将我们内存中的字符串啊,基本数据类型的变量。哎,我们呢,写出到文件中,哎,写出到就是我们这个文件里了。啊,这块要注意一个问题就是,呃,你要是处理异常啊,注意。哎,这个处理异常的话,哎,我们说仍然,哎应该使用try catch。Finally哎,我这块呢,又偷懒了啊,我这有Rose了一下,哎,大家写的时候你注意啊,那但是你别跟我一样啊,这样写完以后你说用这个啊啊,那笔试面试的时候你别这样了,或者你开发的时候呢,你说你写了个RO,然后说应该用track,项目经理看了不会砍死你啊是吧,知道用track你写Rose啊啊我这就偷了个懒啊啊就大家呢,能清楚的看到这里边的第一步到底是干什么,哎,我们整体这个套路呢,都是这个套路。
06:18
三啊行,现在的话呢,我们做一个执行。成功了,成功以后我们会看到这块呢,会有一个文件就叫做data.tst。我双击打开一下。你看长这样啊,诶这个中文你看还能识别出来,那后边呢,这样子也不知道这是啥。啊,注意这个文件呢,不是让咱们双击打开这样去读的啊,这个呢,就是存储以后你要想读怎么读啊,是不是用那个data input STEM去读啊,你不能这样去读啊,双击呢,不对了,所以下边呢,我们去写这个读的过程。哎,Test,看这来一个四。
07:06
行,那还是这样的几个套路啊,第一个呢是造流,第二呢就是你读,哎,第三个呢就是关闭流,就这个事儿,行,首先我们去造叫data input stream数据的一个输流啊,Dis等于又一个data input stream,这里边呢又需要传个input stream,自然呢就是file input stream。哎,这里边读的文件就是咱们刚才写出去的这个文件。哎,这么着。好,这样呢,我们就有这样一个流了,那接下来的话呢,我们去读啊,读的时候呢,这时候大家要注意一个问题,我现在DS去读了啊,反正读呢就是用read了。瑞德,你说我这时候我瑞德先写瑞谁啊?我这是不是有一个顺序,先读串后in特后布尔,你说我这块读的时候呢,先读谁,诶先读这个utf,首先说呢,这块你不能这个想读谁就读谁啊,你说我我上来我就想先读布尔不行啊,哎,相当于我们这个数据你看啊,这是这个文件,你当初往外写的时候,你不是先写的这个UTF杠八后写的这个int类型,再写的是一个波尔类型,那我现在读的话呢,是不是也得先读这个呀,再读这个,再读这个啊,别乱着来,乱着来就错了。
08:32
所以我们要先去read u TF。啊,先读它啊,那这时候呢,异常,哎我们呢也是都给它throw啊al enter,哎,读到我们这个string,这呢是我们的一个name啊,接着DS点去read的一个int啊,这呢我们是它的一个年龄啊,然后DS点啊我们去read这个布尔。哎,这个他说是不是一个男生啊,意思没有。
09:05
啊,是不是男性啊,你不能说是不是一个雄性是吧,不合适了啊,哎,是不是一个male男性行,那得到三个数据以后,咱们可以去输出一下啊,在控制台上看看。哎,这是这个name类似的啊,这几个A。诶,这样呢,我们就输出了。那最后关闭流来做一个close。哎,这样就行啊,这呢是咱们写的,说呢将。啊,将这个文件中。哎,我们说存储的基本数据类型变量啊,和咱们的字符串啊,又读入到读取到这个内存中。保存在变量中。哎,这个呢,还是这个内存层面的啊啊这呢要注意呃,下边呢,我们去做一个执行。
10:05
诶,你看这块我们就完全的读读进来了。那这那就没问题啊,那画完顺序或者什么样子呢,比如把这个布尔类型的放上面,诶就放这无所谓,呃,没用啊,是放这个,这个呢就是你先输出后输出的问题啊,我这呢,一上来就先去读一个布尔行。你看是不是乱了。暴力异常了,哎,这个大家小心点啊,就不行啊,你按照你这个写入的顺序啊,这呢我们写成一个注意点。哎,注意点就是嗯,读取这个数据的这个顺序,或者要读取不同类型吧,哎,这个数据的这个顺序啊,要与啊当初写入文件时。啊,这个保存的这个啊,数据的这个顺序一致。
11:01
哎,就是我们说的这个问题啊,哎,这个读的顺序取决于我们这里边写的时候的一个顺序。OK,这呢,就我们说的这样的一个注意点啊,诶这块呢,大家也要小心点,就我每次写出去一个数据呢,咱们就做一个flash,就刷新这个刷新操作的话就会直接呢,嗯,只要你执行一下这个flash,呃刷新嗯只要呢执行一下这个flash,它就会把我们这个数据呢给写到这个文件里。啊,刷新操作啊,一旦呢执行它啊,就会写入或者叫将啊将我们这个已有的数据。或者叫内存中的数据。呃,写入文件啊,就这样好,这呢就是咱们说的这个叫数据流啊,叫数据流,如果呢,后续大家需要去保存一些内存中的一些变量了,这个变量呢,你放在内存中不太靠谱,这个时候呢,你就把它呢存到咱们的,呃这个文件里就可以用这样的两个流。
12:02
哎,这样两流啊,这两个流完了以后,下边呢,再说那就叫对象流了,对象流,对象流是不是就来存对象了。哎,就是咱们呢,这里边儿你看光提到叫基本数学型和string,或者顶多呢,又加了一个叫字节数组。那你说我现在内存中有一个animal,我有一个,我有一个user,有一个customer,像这些呢类的对象。它还搞不定啊,当然你要说这个person里边呢,有一个啊,Int型的age,有个string类型的name啊,它可以搞得定,它能够给你把这几个变量存起来,但是这个对象他搞不定。那要想能够去给我们把这个对象持久化。哎,我们呢,就需要接触叫对象流。哎,就要接触它了啊,行,先把我们这个数据流停一下。
我来说两句