properties文件改变不生效的问题

栏目: Java · 发布时间: 6年前

问题描述:

我原本是用的如下方式:(也是最常见的方式)

InputStream is = PropertyFileUtil.class.getClassLoader()

.getResourceAsStream("Config.properties");

如果我改动了Config.properties文件,重新调用上面的代码去获取输入流,则读到的内容还是改动之前的内容。也就是说,上面这种方式对于Config.properties的改动是无效的,

原因是:上面这种方法自带了缓存。如果希望能改变Config.properties时能够重新加载,则可以使用下面的方法:

InputStream is = null;

String fileUrl = ReportConfig.class.getClassLoader()

.getResource("Config.properties").getPath();

fileUrl = fileUrl.replaceAll("%20", " ");

is = new BufferedInputStream(new FileInputStream(fileUrl));

这个方法是按实际路径 用FileInputStream去读取 的,所以能够读取到改动后的Config.properties。

PS:另外我发现一点, 在Websphere服务器上,替换了Config.properties文件,然后再重新读取配置内容,依然获得的是替换之前的内容 ,这就不是缓存的问题了,而是Websphere隐藏了最原始那份Config.properties文件,我们替换时不能将这个原始的版本替换掉(我们替换掉的实际上是只是一个副本)。貌似在Websphere上替换class和properties文件都需要重启服务器才会生效。我哪天把properties文件的后缀伪装成.jsp再试试………


以上所述就是小编给大家介绍的《properties文件改变不生效的问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CLR via C#

CLR via C#

(美)Jeffrey Richter / 周靖 / 清华大学出版社 / 2010-9 / 99.00元

本书针对CLR和.NET Framework 4.0进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分29章。第Ⅰ部分介绍CLR基础,第Ⅱ部分解释如何设计类型,第Ⅲ部分介绍基本类型,第Ⅳ部分以实用特性为主题,第Ⅴ部分花大量篇幅重点介绍线程处理。 通过本书的阅读,读者可以掌握CLR和.NET Framework的精髓,轻松、高效地创建高性能应用程序。一起来看看 《CLR via C#》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码