Ï

Java Properties文件

    谈到Properties不禁想起java项目里特有的一种配置文件,Properties 继承于 Hashtable,所以可对 Properties 对象应用 putputAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 storesave 方法,则该调用将失败。

    最近做项目想在项目中实现动态配置文件的功能,本来以为水到渠成的事,结果遇到了一点小麻烦,现将问题记录下来。

    通常用法:

    当我在启动Tomcat后,重新在前台传入key值后调用设置方法后重新读取,如main方法中一样调用,发现每次修改后的properties文件本身确实改变了,但读取出来的值确不是实时更新的,原因在于getProperties每次读取都是从内存中读取,而对于文件的更新后没有实时加载到内存中。

    经过轮番的修改……测试……不行;修改……测试……不行;…… ……后:得出解决方法,问题出现在加载properties文件的方法上:如上37行

    getResourceAsStream每次读取来自内存中,所以可以通过getResource(proPath).getPath()来获取properties文件路径,然后读取到输入流中实时加载properties文件,此时即可得到每次改变后的值。

    转载请注明:风尘 » Java Properties文件

    喜欢 0
标签: , ,

已经有2 人抢在你前面了~

  • 小书童 3年前 (2014-09-28)

    我也遇到过这个问题,网上找了好长时间,没有解决办法,最后直接通过变量解决的。以后再遇到这问题,终于有解决办法了,哈哈,我收藏了! 😆

    • windus 3年前 (2014-09-28)

      @小书童 我调用的是第三方的jar包方法,限制比较多,必须得用配置文件方式,要不我也可能换其他方式实现了。