当前位置: 技术问答>java相关
一个关于properties文件读取的奇怪问题?在线等!
来源: 互联网 发布时间:2017-04-25
本文导语: 我读取db.properties文件的时候,为什么在修改了该文件之后,读取的还是原来的内容,甚至当我删除了该文件以后,读取的还是原来的内容,只有第一次创建该文件的时候,才是正确的读取内容? 程序代码: ...
我读取db.properties文件的时候,为什么在修改了该文件之后,读取的还是原来的内容,甚至当我删除了该文件以后,读取的还是原来的内容,只有第一次创建该文件的时候,才是正确的读取内容?
程序代码:
程序代码:
|
贴一段代码给你看: 每次调实际是在cache中调,不是你的程序问题.
getBundle---> getBundleImpl-->
.....
Object lookup = findBundleInCache(loader, bundleName, defaultLocale);
if (lookup == NOTFOUND) {
throwMissingResourceException(baseName, locale);
} else if (lookup != null) {
return (ResourceBundle)lookup;
}
getBundle---> getBundleImpl-->
.....
Object lookup = findBundleInCache(loader, bundleName, defaultLocale);
if (lookup == NOTFOUND) {
throwMissingResourceException(baseName, locale);
} else if (lookup != null) {
return (ResourceBundle)lookup;
}
|
估计是你的PropertyResourceBundle 类的问题,它在执行getBundle("db")
的时候先看看 类型为db的Properties是否创建,如果未创建则new一个,否则
不作任何操作,因为配置文件一般来说是在系统启动时候会读取到内存,以
后的属性的访问完全是内存操作,而不是每次都去读取配置文件,这样效率
太低,而且意义不大
而你下面在javabean中的语句则是每次调用方法的时候都会先读取配置文件,
当然每次都是最新的信息了
的时候先看看 类型为db的Properties是否创建,如果未创建则new一个,否则
不作任何操作,因为配置文件一般来说是在系统启动时候会读取到内存,以
后的属性的访问完全是内存操作,而不是每次都去读取配置文件,这样效率
太低,而且意义不大
而你下面在javabean中的语句则是每次调用方法的时候都会先读取配置文件,
当然每次都是最新的信息了