00:00
那么再往下走呢,我要完成的功能啊,我想写一个工具类啊,这个工具类干什么呢?这个工具类啊,它去读取我们现在这个配置文件啊,读取的配置文件从我现在配置文件中呢,把我现在相关的属性呢给拿过来啊,给拿出来,比如说我现在给你传一个这样字串,然后你可以把它这个值给我返回回来啊呃,那么如果写工具类的话呢。那咱们现在呢,在这是吧,我去新创建一个package对吧,那这个呢,比如说叫YouTube啊YouTube,然后把它呢,也挪进来吧,啊把它们也挪进来对吧,然后接下来再往这里再来一个对吧,盖了这个比如叫my proper u,那么当前呢,它所完成的功能就是读取我们现在配置文件。是吧?多极倍数件工具类是吧?那接下来在咱们的工具类里边呢,那我写一个五个零方法,比如说啊,这个方法呢,它的作用就是帮你啊,从配置文件里面把的加的信息啊,或者说啊,它就是读取配置文件到叫load对吧?那么你现在呢,那你要想其让我读取配置文件,你是不是得告诉我配置文件在哪啊对吧?所以说呢,你需要传一个参数proper name的当前的配置文件路径,你来告诉我,那么我现在如果说啊,我已经把制的路径了,那我是不是可以到咱们指定的这个路径下,如或指定的文件中,对吧?然后读信息,那么读之前咱们都知道要封装一个对象,是不是咱们封装一个proper对象啊对吧?那咱们返回值呢,那应该是practice啊,Practice,那么这个导向包就是我们Java u求包下面的practice对吧,然后接下来那么这个呢,咱们怎么。
01:56
去做啊,就是我现在啊,你给我一个的这个路径,然后呢,我就能够啊去咱们当前这个这个文件中对吧?然后呢,去对取数据,其实是把咱们这个数据呢,把这文件它里的配置封装成一个property的对象给你返过去,那既然封装property对象,那咱们现在这里是不是可以new一个呀,对吧,New一个properties这个对象对吧?然后接下来点V对吧,然后呢,在这里pro啊,然后咱们现在呢,把这对象给返回回去啊,给返回1PRO对象啊,那么咱们现在把这对象返回之后,注意啊,到这有一个问题大家等,像这个上班的同学刚讲完我们这个来的工具类对吧,那么讲完这个工具类之后呢,对吧?那么他马上在创建对象的时候说胆战心惊的,怎么能不敢直接拗了说怎么呢,说习惯性的点丢这去了,习惯性表这个东西不是啊,同学们对吧,这东。
02:56
那也不是说所有都需要构造器对吧?就是说有的时候呢,可能我当前的属性比较多对吧?那这个时候呢,我可能通过它对来构造模式都要去创建对吧?然后接下来呢,咱们现在这里边,其实你光顾你有一个不行,但是咱们是不是得去读取我的文件对吧?那么怎么去读呢?在咱们那个pro对吧,这个类与中啊,这对象里边它应该有一个方法,这个方法是不是有叫load去加载到配置文件的呀,对吧?这个以前大家写过吧?来practice practice读取配置文件代码写过吗?以前应该写过是吧?来呢读取我们现在呢,对或者加载,然后呢,指定的配置文件通过什么呢?通过它load加载,那么如果通过load加载的话,这个时候就告诉你要传一个什么呢,传一个我们什么这个reader是吧,传一个reader,那传reader的话,这东西咱们怎么传,用一个用一个什么呢?然后什么类型的read。
03:56
这对吧,那咱们现在呢,应该是字符对吧,那就是input stream对吧,然后呢,咱们这reader啊,Input stream reader对吧,然后接下来,那么这里它需要什么,是不是需要一个字节点啊,那那这个怎么办?有一个谁fair input stream对,然后接来路径对吧?然后咱们现在右键对去拷贝它的一个pass对吧,把这些东西呢,往里一放行不行,同学们。
04:29
我这还相对路径呢,我这多绝对呀啊,我这路径不够绝对吗?不是纯粹吗?我这个话为啥不行,哎,将来是要打包的是吧?啊那这个将来打包的那怎么办呢?那我现在那那根据new fair input就点不靠谱呗,对吧,那你们给我想一个方案,从哪拿呢?啊本地不行是吧?那本地不行的话,那咱们现在我以后要打包,对你们都说对了对吧,那么打包的话,那如果说我现在我不在Windows了,我放到利上去了,那我去哪去拿咱们的配置文件呢。
05:06
去classes下面去的对吧?哎,去咱们现在target的这里边是不是classes呀,就是它经过编译之后,这个东西应该是不是放在咱classes里边,首先都这里来呀,对吧?那么接下来问题是怎么样从classes里边把这个配置文件我拿到。Class,对,通过类加载器怎么样拿到内加载器?你有一个class当前类的,对当前类的是吧?当前线程的对吧?这个thread是不是咱当前线程啊,对吧,然后current对吧,这个thread线程,然后current这个thread是当前线程,然后接下来咱们是不是可以获取当前线程内器啊,也就说我现在啊,这个类器要加载文件,从哪加载,是不是得从咱class加载啊,对吧?那么接下来在咱们这里边呢,是不是也叫get resource at stream呀,从咱们类路径下面去拿一个什么呢?去拿咱们现在这个配置文件啊,从类路径下去拿一配置文件啊,这种写法还OK吗?同学们啊,这种写法。
06:17
以前是这么写的吗?其实你看你们这个这个代码其实完全你们告诉我的,其实是对的,同学们你想想我刚才我就你们不让对吧,你们能想到说以后咱们不能在本地对吧,然后他说那咱们上别的地方,那怎么办呢?你们告诉类加载器,那就想法拿类加器啊,这也是你们告诉我的对吧,然后现在拿哪类价器呢?说通过县城对吧,当年去县城咱们可以拿到当前线滤价器啊对吧,滤价器它去哪加载呢?肯定到class去加载吧,对吧,那么咱们从class下面,然后呢,通过有一方法叫get resource asre,然后呢,你把这个路径给我对吧,然后呢,我现在帮助你对吧,去把咱们现在的文件给加载进来。就OK嘛,对吧,就这样,然后接下来这里啊,是不是可以给传一个参数,对吧,这个参数呢,是不是可以指定一下它编码方式,这个编码方式呢,可以这样,但。
07:10
是吧,Trans,然后接下来utf到八对吧,在咱们这里可以通过它来指定咱们这个编码方式,对吧,通过它来指定编码方式,好,那这样的话,咱们现在这个基本上差不多了。啊,看一看啊,就是正常的情况下,咱们如果要是加载配种文件的话,这是比较标准的写法,同学们。啊,这是比较标准的写法。来做个测试吧,看一看能不能够拿出拿到咱们这个配文件内容啊,对吧?那么首先呢,咱们现在如果要是去做这个事的话,首先是得先调一个我my properties,它里边有一个对吧,咱们这个漏的方法,然后穿谁呢?对吧?咱们现在这个文件叫conflict.proper然后接来点VR,那么他应该给我返回的一个我们这个proper的这个对象,然后接下来咱们这个proper对象有了,Proper对象有了,那么咱们可以通过对象点有个方法叫get property,然后把key给传过去,然后得到value,对吧?然后接下来咱们现在这里边看都有什么呀,这里面是不是有一个卡卡对broker list ctrl c,然后呢,在这里CTRLV,然后接下来点C3做一个输出来运行一下看效果啊。
08:40
大家看咱们现在这个东西是不是过来了呀,对吧,那么这东西过来之后呢,那么大家看在咱们这个classic下边这个配置文件是不是有了呀,对吧,也就是说他呢,其实你不管以后在我们的window运行,还是在linu运行,或者在其他别的平台运行,对吧?那么他肯定呢,都会从咱们这个路径,路径下边去找谁呢?去找咱们现在这配置文件啊,去找这配置文件啊,看一看这个代码啊。
09:12
就是工具类呢,大家得对吧,这个东西一定要自己写出来对吧?这个写工具类的目的是什么呢?就是以后咱们肯定会经常用它对吧?那我们现在把它封装工具类,我以后再用的时候,我没必要每次用的时候呢,我都写这样的代码对吧?那么做咱们项目的时候呀,经常会出现这种情况,什么呢?我前面封封装了很多工具类对吧?然后大家呢,一开始封装的时候呢,这个东西对吧,这个也能跟上对吧,到后来用的时候呢,对吧,就知道这是工具类干啥的,但是工具里怎么写的多就忘了。啊,这个代码不难吧,好了,那咱现在听一下。
我来说两句
666
6666
666
感谢分享
666
可以
棒啊
感谢分享
666
厉害了,学习学习。