00:00
那这个完了以后,我们再说一个小的知识点,这个知识点的话呢,这是需要大家掌握的啊。好,我这写一个TEST2,这个想说明什么问题呢?咱们当初讲集合的时候呢,是不是提到过一个结构叫做properties。对吧,它是干什么用的呀,是不是用来这个读取配置文件的呀?哎,读取配置文件当初呢,咱们这个还做了一个例子演示啊,只是演示的时候呢,还没有讲lo流,那咱们后来呢讲IO流了,现在呢,咱们把这个例子呢,快速的写一下啊,写一下以后我们可以使用class load呢,做一个类似的替换啊,就这样一个操作,行,那首先properties proper用一个啊properties。行哎,我们去造一个它的对象,那么通过这个prop点,诶,我们呢去呃加载做个漏的方法,这时候呢,就提到了一个叫输入流,那输入流呢,典型的我们现在就file input stream了。
01:10
哎,发stream,那这个时候呢,我们需要指定具体的一个文件地址啊,或者叫配置文件了啊,这个配置文件咱们现在用的是单元测试方法。所以我是在当前这个Mo下,对咱们造一个file,造个file也行,或者你造一个这个。就叫这个资源的一个,嗯嗯。啊就它了啊,这个写它呢也可以啊,其他的话呢,这个时候给我写一个叫嗯JDBC吧,我就这样写,不用加这个,后边这个点了后缀也不用写,OK自动呢,就给我们补齐了点proper了。行,这个咱们当时讲过,记着呢,用配置文件的时候呢,把这个勾勾上,这个时候呢,我们要写中文的话,就不会出现读取的乱码了,这个位置我写上,比如user,那user呢,咱们写一个具体的名字啊,比如无非哎写上了,然后password密码。
02:04
ABC123行这就写好了,现在的话呢,我们在这个代码当中,把这个配置文件中的数据呢,给它读进来,哎,呈现在我们这个控制台上,这时候加载这个位置呢,我们就选的是它啊CTRLC一下。哎,这么着这就进来了,这里边呢都可能出异常,那我们就暂时呢,先都给它抛出去啊给抛的稍微大一点,那有了这个FS以后呢,把它放在这,此时的话呢,我们pro加载对应的这个流,实际上呢,主要操作就是这个对应的配置文件,那后续的步骤pros,诶去点get一个property property的特点就是键值都是磁钝。那键就是我们左边的这个叫user,嗯,然后呢,我们这al。生成一个userrl,那类似的呢,我们再去获取这个密码,诶CTRLC,哎,这样子好,那这块我们打印一下。
03:21
诶,这就写好了啊,写好以后我们执行。你看这呢,我们就看到确实呢,把这个数据呢,就读进来了。OK,这没问题,这是咱们之前讲的啊,诶这呢就是后边呢,大家要用的话呢,就可以这样用,诶这个呢,你可以把这个代码呢掌握一下,现在的话呢,我们想说一个稍微呃不同的一个方式啊在这呢,我们稍微描述一下,此时呢,我们写的JDBC.pro相当于默认情况下呢,我们这个配置文件这样的一种相对路径识别为在当前的Mo下,诶此时的这个文件,诶我们说默认在当前的Mo下,那如果呢用eclipse的话,那那就是当前的这个工程墙,这个eclipse咱们这就一个一个的工程了啊行,这是这个事,那现在的话呢,我们做一个替换啊,哎,我把这个呢注释掉。
04:14
那相较来讲呢,我们可以看成是读取配置文件的这个方式一,哎,这算是一个方式一了,啊,就这样来写,那么我们再说一种方式,再生任用方式是什么呢?首先我们得先拿到一个类的加载器,通过类的加载器去做,那类的加载器呢,我们就使用这个系统类加载器了,不妨呢,就咱们当前这个类啊,当前这个类呢,点class,在点get class load,哎,拿到的这个class loader就是我们要说的这个系统类加载器,用它来操作,那拿到我们这个叫class loader以后,它呢,有一个方法叫get resource asre。就获取一个引流的方式,获取一个资源啊,那咱们刚才在这创建的时候,不是创建也是个resource吗。
05:04
这呢就get这个resource,诶那么这呢,你告诉我这个路径在哪?哎,这个路径比如说我现在呢,还是把它呢拿过来CTRLC放在这,那放到这以后,那alt enter,那我们照样呢,还是得到一个输入流,那拿到这个输入流以后。哎,这个再重新生成一下。拿到这个输入流以后,下边这个步骤跟他就一样了。这个呢是is,那在后续呢还是这样做,就是一样的,只是我们用这个方式呢变了啊这呢用的叫class loader来做的,那这种做法好,写完了我们跑一下。好大家看这时候呢,出异常了,异常呢说控制人异常47行。哎,这呢报了一个控制人异常,这个报控制异常,首先这个pros这呢我们实例化了,嗯,它里边呢,这块报的是吧?嗯,这里边报的话呢,再要深入写的话呢,就得看这里边这个问题了哈,嗯,其实这块呢有个什么问题呢?呃,他报的其实不是特别明确了,就是我们现在呢读的这个位置的文件,此时呢,想说的是此时的这个这个识别位置不在咱们当前的Mo下啊,在哪呢?
06:24
哎,在咱们这个src下。你看哈,我在src下,我去新建一个文件,这是咱们换一种方式啊,我这写个file,比如叫JDBC啊,1.properties,哎这样写的,那这里边呢,我们把这个内容也去填充一下啊,CTRLC啊,TRLV啊,比如说名字呢,咱们换一换,诶换成咱们班的这个,比如说诶黄峰。啊,这个风啊,嗯,写好了,那写好以后,那我是写到这个位置的,现在呢,我们去读的应该叫GDBC1,哎第2PRO。
07:08
行,哎,这个时候我们看到数据呢,才能够获取到,哎,才能获取到啊,那也就说明呢,我们这个文件呢,它的默认的一个这个这个位置啊,相对路径啊,跟我们上边一个是有区别的,我们在这标识一下,这呢是我们说的叫读取配置文件的方式二。诶,这个叫方式二啊,我们呢是使用啊叫class loader,哎使用它来做的,这呢需要说明的就是配置文件,嗯,咱们呢,现在使用的是一种相对路径的方式,那配置文件呢,说默认识别为,哎就是当前module的啊src项,哎是在这个路径下的。啊,那么后续呢,大家如果用的话呢,呃,用我们这个properties的时候呢,大家可以用它,也可以用它都OK啊,但要注意呢,他们二者有一个区别啊,啊有个区别,那行就是这样子的啊,那其实呢,大家也可以去,我们这只说的是一个相对路径啊,也可以呢去做一些调整,比如说呢,我们使用这种方式的话啊,我们使用这种方式,那把这种方式我暂时呢先注释掉啊,使用这种方式,你说我能不能去加载我们这个GDBCE1啊能呗。
08:32
其实也可以哈,咋写啊对,那你就把上面这个呢注掉以后这呢,你写一个S2C,这样是不是就可以了,这个呢,加上个一啊,我们想说明的是呢,就是它还是在当前model下,只不过是model下呢,诶又有一层目录,目录下的这个文件。啊,你看我们这时候再去执行。那也是OK的啊,那这呢读的就是我们这个GDBC1了。
09:00
啊就是嗯,想怎么写,就是文件呢在哪?嗯,这个你接着去找的时候呢,肯定是有办法能找到的啊,关键呢,就是你识别知道一下,到底它默认的这个相对路径是谁啊,这个要稍微关注一下啊,那我们真正的后边,比如写web程序的时候呢,诶,我们是写到工程下呢,还是写到我们这个src下呢,其实呢,就不建议写到我们这个工程下或者叫Mo下了啊,因为这个呢,我们部署到他们开的服务器以后呢,这个工程下的这种配置文件呢,它就缺失了。啊,那我们要想保证它的存在呢,我们就得放到这个src的下面啊,要放在这块的时候,如果你要是用的是方式一,记着加一个src这种,那你要是用方式二呢,哎,默认它就在src下啊,知道这个事儿就行啊成这是我们说的这个题目,这块呢,大家下来练一练啊,把这个代码呢需要掌握一下,好这呢,关于我们这个叫class loader呢,咱就说完了。
我来说两句