首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
PropKit Prop 系列能提供修改配置文件内容的功能吗
hb963724769
2019-09-20 13:54
如题:比如这样PropKit.use("aaa.xx").get("XXXX").set();
项目:
JFinal
评论区
hb963724769
2019-09-20 14:41
用法:
Prop use = PropKit.use("api.properties");
Properties properties = use.getProperties();
Map list = PropertiesUtil.list(properties);
for (String key : list.keySet()) {
PropertiesUtil.update(properties,key,list.get(key)+"1");
}
回复
hb963724769
2019-09-20 14:42
这里我只想改api.properties, 如果要动态,直接把文件名当参数传入就好了
回复
hb963724769
2019-09-20 14:45
工具类PropertiesUtil
import com.jfinal.kit.PathKit;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* @Date: 2019-09-20 14:59
*
@Version
v1.0.0
*/
public class PropertiesUtil {
public static final String FILE_NAME = "api.properties";
/**
* 循环所有key value
*/
public static Map list(Properties p) {
Map propertiesMap = new HashMap<>();
Enumeration en = p.propertyNames(); //得到配置文件的名字
while(en.hasMoreElements()) {
String strKey = (String) en.nextElement();
String strValue = p.getProperty(strKey);
propertiesMap.put(strKey,strValue);
}
return propertiesMap;
}
/**
* 通过key删除value
* @param key
*/
public static void delete(Properties p,String key) {
p.remove(key);
fileupdate(p);
}
/**
* 修改或者新增key
* @param key
* @param value
*/
public static void update(Properties p,String key, String value) {
p.setProperty(key, value);
fileupdate(p);
}
public static void fileupdate(Properties p){
FileOutputStream oFile = null;
try {
oFile = new FileOutputStream(PathKit.getRootClassPath()+ File.separator + FILE_NAME);
p.store(oFile, "");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
oFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
回复
JFinal
2019-09-20 14:45
Prop、PropKit 专为读配置而设计,没有打算提供写配置功能
回复
发送
我要反馈
热门反馈
扫码入社
Prop use = PropKit.use("api.properties");
Properties properties = use.getProperties();
Map list = PropertiesUtil.list(properties);
for (String key : list.keySet()) {
PropertiesUtil.update(properties,key,list.get(key)+"1");
}