PropKit Prop 系列能提供修改配置文件内容的功能吗

如题:比如这样PropKit.use("aaa.xx").get("XXXX").set();

评论区

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 专为读配置而设计,没有打算提供写配置功能

热门反馈

扫码入社