00:00
那么咱们再往下的话来看一看啊,就是说咱们呀,再往下还有一个内容,各位啊,什么内容呢。这个内容是这样的,是IO和这个properties。联合使用啊,IO和properties联合使用。说IO是IO流这块的对不对,是IO流吧,哎,文件的什么读和写吧,是吧,还有个叫properties啊,Properties是什么呢?哎,是一个map集合,还记吧来K和什么value都是string类型对不对,String类型啊。那么这块它有什么有有什么用呢?我现在呢,其实怎么说演示演示出来也没什么太多的效果啊,没什么太多效果,呃,在后边讲JDBC的时候,或者是讲咱们的反射机制啊,反射机制的时候叫反射。机制的时候啊会用上,所以这块我提前呢,先给大家说一说啊,因为毕竟咱们在讲IO对不对,好大家看啊。
01:05
在我CHAPTER23这块啊,我从这建一个文件行吧,我建个文件啊,就CHAPTER23啊,这边out insert我干啥呢,我建一个file出来,这个file呢,文件的名字我就叫啥呢就叫。嗯。这叫user info吧,没有后缀啊,大家看后边我什么也没写啊,没写来。T文件文件啊,OK,建出来啊。是个非常普通的文件,在这个文件当中我写什么,写上这么一个东西啊,就key value的形式的这个数据我写上在这个文件里边啊,我写username等于什么呀,哎,Letin吧,比如说啊password密码呢,等于什么呀,123。那这个地方呢,大家看到这个这个文件里边所写的这个东西有点像一个map。Key value key value是不是中间用等号隔开,对不对,哎,那我们在这里呢,写一段程序,我们能不能把这个把这个文件里边这个东西拿到呢。
02:04
对吧,我们把这个文件里边配置的这些信息我想拿到,通过Java程序我想拿到它怎么拿来,大家注意看啊。呃。我就在这了。行吧啊。新建class。这个class呢,我们叫IO。Properties test。零一吧,啊就在这里呢,我们IO啊加这个properties。的联合应用。嗯。首先是这样的,各位啊,就是说我们这个properties呢,你要对它有一定了解,Properties。是一个map集合啊,K和value呢,都是string类型。
03:03
我现在呢,想干什么呢,想将什么呀,将这个。有字音凤。啊,想将这个文件中的数据。加载到哪儿啊,叫properties对象当中有同学说,老师你做这个事儿有啥意义啊,我还是那句话,现在我还没法给大家解释,到后边我做这个,做这个项目,做这个功能的时候,比如说反射机制当中,哎,你可能就知道他是干什么用的了,总之现在你先听个乐吧,行吧,先听个乐啊,就这边呢,有一个文件叫u in inform,这个文件里边写的这么一个德行的数据,现在我想把这个数据呢,加载到我这个map集合里边,我要做这件事。啊,你只要本着这个原则去就行了,我应该怎么去写这个代码。啊,就是说这个文件里边有一个这样的一个德行的数据,对吧,K等于Y6 K等于Y6,那我在我程序当中,我能不能把这个文件里边这些数据加载到我的map集合里边呢。
04:02
来可以啊,首先你需要新建一个什么呀,输入流。对,因为它毕竟是在硬盘上,对不对。这是硬盘文件,而你这个properties呢,将来在我们Java程序里边是在内存当中,对不对,那你要把这个硬盘上面的这个数据。文件里边的这这个东西放到我们的这个map集合里面。对吧,哎,你要放到我们这个map集合当中,是一个map集合呀。对吧,哎,放到map集合。那这个过程呢,肯定是我们从硬盘到内存,从硬盘到内存是输入还是输出输入吧。所以要新建个输入流,输入流的话你就file呗,Input。吗?是不是或者fire reader都行啊,你看你喜欢用哪个,用这个吧,你用一个什么呀,Fire reader,先让这个去指向这个文件,各位指向这个文件。
05:03
这个文件在哪呢?这个文件啊,它现在在src,不在S,在这个项目,在这个模块下边,Module在这个模块的下边有一个这样的文件,所以这个时候的这个路径大家还记得怎么写吧,叫CHAPTER23下边有个什么叫user info。好,那写上它就可以了,那这边呢,可能有一个异常需要我们去处理一下,那处理异常就处理吧,来扔出去啊,咱们先不管了。好了,那么接下来呢,新建完这个对象之后呢,我们干什么呢?要新建一个什么呀?Map集合,这个map集合我们用谁呢?就用这个properties。我们用它。Pro new一个什么呀?Map集合六出来,这是个map集合,各位啊。嗯。溜出来之后呢,你可以调用什么呀,这个properties对象的什么呀,漏的方法。将什么呀?将文件中的数据加载到map集合里边。
06:03
将文件中的数据加载到map集合中。非常之简单,各位啊,Proper这个对象有个方法叫漏,你看里边可以跟个流,可以跟字符流,也可以跟字节流,都行。对吧,哎,那么我们用第一个吧。哎,那这样的话,我们把。这个流给它传进去,这个流是个管道,这个文件里边的这个数据,顺着这个管道就加载到了我们这个map集合里边。啊,那现在这个map集合里边就有数据了啊,就是程序啊,就是说文件中的数据顺着管道加载到哪儿呀。加载到map集合中。其中。等号左边做K。
07:02
等号右边做Y6注意啊,其中等号左边。做K右边做什么呀,Value各位啊。注意啊,注意。这个自动就把等号左边这个作为K,等号右边作为value就加载到这个map集合里边了。这是那个管道指向的这个文件,这个文件里边有这样的一个map。加载进来对吧,怎么通过这个方法叫load加载进来了property啊哎,我们第一次讲这个方法,那么接下来我们能不能通过K来获取Y6呢。可以等号,左边是K啊。所以我们有一个方法还记不记得?Get property。这个方法是传一个K,返回一个value。是不是这个K是谁就是他喽。
08:03
一定要从这个文件里边,把这个文件的等号左边复制粘贴过来,千万别去写,写的话就容易出错,复制粘贴过来,那么这个时候拿到的它是不是这个username,我们拿一下。好,大家看,In拿到了,我们在这里不需要做任何修改。大家注意听啊,Java程序不需要做任何改动,我们只要去这个文件里边,把这个名字改成root。改完之后呢,再执行这个程序。腾讯没改啊,还是刚才那个腾讯,大家看拿到这个用户名是不是就不一样了。对吧,只要文件在这改我们程序不用动。啊,然后我们在这里怎么着啊,去一执行,你看这就拿到的是新的信息啊。那么大家思考一下,这种机制有什么用啊?
09:02
这种机制有什么用啊各位?以后如果在程序当中经常发生变化的信息。最好别写到Java程序里边,对吧。经常变化的信息写到Java程序里边有什么不好的地方,如果经常变化的东西,你写到一个Java程序里边经常。将来在改变的时候,你这个程序需要重新编译。你重新编译,你还得重新部署服务器,还得重启呢,非常的麻烦。经常变化的信息,你可以写到类似于这样的文件当中。然后将来呢,通过Java程序呢,去读这个文件。然后呢,去动态的获取这个信息,密码改了。对吧,那么将来你改这个文件就行,程序不需要动。一运行你拿到就是别的信息来,我们把密码也拿一下。Password pro get对吧,这个位置传一个key,这个key是这个配置文这个文件当中的一个,哎,Password拿过来,然后把这个呢,我们输出一下。
10:06
我们执行一下,你看。就拿到了。不用做任何改动,打开这个,把这个改成123,改成之后呢,接下来直接再执行,你看就变了,他拿到的信息就变了。对不对,哎,拿到的信息就变了,各位。就是说我们这里有个很好的一个理念。啊,非常好的一个设计理念。就以后经常改变的数据。可以单独写到什么呀,一个文件中。啊,使用程序怎么着,动态读取。将来只需要修改什么呀?啊,这个文件的内容,Java代码不需要改动。
11:02
不需要重新编译。服务器也不需要什么呀,重启。啊。就可以拿到什么动态的信息。执行。看来我们把这块呢改一下,比如说。我的命。呃,123。来,再走。是吧,哎没问题吧,哎没问题啊,非常完美,非常完美,那么接下来类似于这样的文件,我们叫做什么呀?叫做配置文件。注意啊,类似于这样的文件,或者类似于以上机制的啊,类似于以上机制的这种文件被称为什么呀,配置文件各位。啊,并且当配置文件中的内容格式是K等于Y6。
12:09
K等于value格式。并且当配置文件中的内容格式是这个。到时候。我们把这种配置文件叫做属性配置文件。啊来Java规范中有要求属性配置文件建议以什么。点properties结尾,但这不是必须的,大家看我这个文件其实并没有以它结尾吧,啊,当然你也可以以它结尾啊,在文件上点右键重命名,或者是shift加F6,然后这边呢,加上一个扩展名叫properties。
13:00
Properties属性配置文件。来度就行了,好,大家看这个配置文件是不是变样了,你看。对吧,图标变了。这种文件我们称为属性配置文件,各位啊,Java中规范中要求属性配置文件以这个结尾,但不是必须的。属性配置文件。这种以什么呀,以这个叫做点properties结尾的。文件在Java中被称为属性配置文件。其中properties这个对象是专门存放。哎,属性配置文件内容的一个类。其中,Properties是专门存放属性配置文件内容的一个类。
14:01
这个配置文件很重要,各位。啊,很重要,我在这强调一下啊,这个文件的扩展名不一定非得是点properties,但一般在Java开发中建议是点properties,叫属性配置文件,它的属性配置文件就里边就长这个德行,各位啊,长这个德行,然后呢,你在这里一个流一个集合漏一下,把这个里边的数据顺着这个管道就流到我们map集合里边,而我们的map集合调get的方法,传一个key就可以获取白流,传一个key就可以获取白流,其实代码非常非常之简单,不难啊,但是在这里我需要给大家说的是什么呢?一个理念很重要,什么理念呀?啊,就是说我们以后经常变化的信息啊,写到这个文件里边,将来代码不用改啊,代码写一次,每一次运行结果都不一样,因为你只要改这个配置文件就行了,而这种配置文件有K等于value key等于value这种形式的文件我们称为属性配置文件,属性配置文件一般建议它的扩展名是点properties,只是建议。只是建议啊,叫属性配置文件啊,1.properties结尾这种文件被称为属性配置文件,而这个配置文件通常和我们哪个类关联在一起啊,和我们map集合当中的这个类叫properties这个类关联在一起,那有同学老师万一这里边key重复了呢?比如password,我再来一个key重复了怎么办?
15:20
可以重复了。value覆盖。啊,我们执行一下。好,大家看是不是取出的是我们的一个admin呢,然后密码是111,这个是不是没取出来呀,永老师这还报错了呢,注意啊,这是人家ID的工具非常强大,你明白吗?Idea工具它强调到什么级别呢?他连这种属性配置文件它都可以怎么着,他都可以给你检查出来有没有错误。他说你这儿可以重复了,你要不要考虑考虑,你看idea工具太强大了,各位啊,来注释一下,井号是注释,各位啊,在属性配置文件中,井号是注释啊来。
16:01
注释一下。在属性配置文件中,井号是注释。注释。属性配置文件的K重复的话,Value会自动覆盖。啊来。找一个。对吧?哎,属性配置文件这里给大家强调了一下啊,有这么一个东西,有这么一个概念在里边,然后IO流加上我们这个属性类properties联合起来,就可以把我们这个文件里边这个数据啊给它加载进来。对吧,哎,加载进来啊。那么这个K和Y的中间啊,大家注意了注意了啊,这个嗯,能不能有空格,有空格会有什么问题,我们来看一下行吗。
17:04
哎,我们假如date啊数据。数据等于100,我们取一下各位啊。pro.get property。拿到这个数据能不能拿到。走一个。100。可以拿到是不是啊,这个可以拿到啊哦,这是可以可以改改进了,应该是啊,以前是不行的,各位啊,以前不行的。这个地方呢,它其实最好不要有空格,注意啊,最好不要有空格啊,最好不要有空格。你再加点空格,我看看啊能不能拿到。嗯,还是可以拿到,嗯,我说一下各位啊这块的话。别有空格啊,因为后期的项目再有空格会出问题,不知道这为啥行啊。
18:04
嗯。按说如果你要这有空格的话,你这块是可以,你需要把这个K全部给它拷进去的啊。后边项目不行啊,在使用spring框架的时候不能有空格,有空格会出问题。但是这没出问题是吧,这没出问题,不要有空格啊,最好不要有空格,这提个醒啊提个醒,最好不要有空格。嗯。看一下啊。呃,这个100后边加个空格呢,我再看一下这个拿到数据是什么数据啊。一百一百前面有空格吗?没有是吧,没有。ABC呢?再走一个。ABC。最好不要有空格吧,行吧,最好不要有空格啊。呃,中间用等号隔开,各位同学老师,我能不能用冒号隔开可以。
19:03
也可以用冒号各位啊,Username X吧,然后冒号我们来看看行不行好吧。Usernamex输出user namemex。执行一下。是不是拿到了。对吧,哎,这个拿到了啊,但是呢,不建议用冒号各位啊。不建议用冒号,各位啊,不建议使用冒号,就还是建议K和Y轴中间用等号的方式啊。建议K和Y之间使用等号的方式。就等号左边是K等号,右边啊是Y6。
20:01
啊,了解一下了解一下啊,现在呢,我们没有办法。呃,他们对字符串进进行了编辑,呃,不是啊,应该这块是不行啊,在这个框架里边是不行的啊,Spring框架呀,包括spring Mac啊买在这个框架里边,如果你加这些东西的话会出问题啊,不要加不要加啊,不要加,别加空格啊,别加空格。还是那句话,别加红哥,听我的啊,没错。
我来说两句