* 最大的好处就是:实时加载配置文件,修改后立即生效,不必重启
*/
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()
}
}
}
我注意到你写的这句FileOutputStream fos=new FileOutputStream(resourceFile);运行时会马上覆盖掉原有的内容,因此你这句话应该移到将键值对载入完成后。
修改如下,测试通过。
/*** 新增或修改资源文件的内容
*
* @param resourceFile
* 资源文件(绝对路径+文件名,不需要.properties后缀)
* @param key 键
* @param value 值
*/
public static void setString(String resourceFile, String key, String value){
Properties prop = new Properties()
try {
if(resourceFile.indexOf(".properties")==-1){
resourceFile+=".properties"
}
FileInputStream fis = new FileInputStream(resourceFile)
try {
prop.load(fis)
fis.close()
prop.setProperty(key, value)
FileOutputStream fos = new FileOutputStream(resourceFile)
prop.store(fos, "Copyright Thcic")
fos.close()
} catch (IOException e) {
e.printStackTrace()
System.out.println("修改资源文件:"+resourceFile+"异常!msg:"+e.getMessage())
}
} catch (FileNotFoundException e) {
e.printStackTrace()
System.out.println("无法获得资源文件:" + resourceFile)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)