JAVA中如何重新加载.properties文件,使其他引用实时改变?

JAVA中如何重新加载.properties文件,使其他引用实时改变?,第1张

       * Spring 提供的 PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源

      

         * 最大的好处就是:实时加载配置文件,修改后立即生效,不必重启

        

         */

        private static void springUtil(){

                Properties props = new Properties()

                while(true){

                        try {

                                props=PropertiesLoaderUtils.loadAllProperties("message.properties")

                   薯纳逗             for(Object key:props.keySet()){

                                        System.out.print(key+":")

                                        System.out.println(props.get(key))

                                }

                     数卖   } catch (IOException e) {

                                System.out.println(e.getMessage())

                        }

     茄汪                   try {

                Thread.sleep(5000)

            } catch (InterruptedException e) {

                e.printStackTrace()

            }

                }

        }

java的Properties类继承自HashTable。HashTable都很熟悉,这是一个存放键值对,基于hash表存储的,所以说顺序也是宴做卜不固定的。因此只要使用java自带的Properties工具类读写properties文件的都是顺序不可预知的。如果想实现有顺序的方式可以自定义晌穗一个类,使用LinkedHashMap做为父类胡让来实现,这样效率就没那么高了。

使用有顺序的键值对的方式存储数据推荐使用jdk中提供的LinkedHashMap。这个工具类是基于链表的形式存储键值对数据。存放的数据和获取的顺序都是一致的。

读出来后用笑配伍set方法修改属性,然后再用Properties 的save方法保存修改 并且覆盖原来的info.properties文件不就行了。不过save方法用的输出流 需要用filewriter写入/com/zst/warning/config/info.properties文件。

web项碰或目应该没问题,如果是java应用程序打成jar包后的话就比较麻烦了。要先解压修改了以后还要卖则再重新打包


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/8220810.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存