读取和更新properties配置文件(支持中文)

[b][size=medium] 首先把需要操作的properties配置文件修改成UTF-8编码[/size][/b]

// 获取properties文件属性值
public static String readPropertiesFile(String filePath, String key) throws FileNotFoundException, IOException {
try {
Properties props = new Properties();
props.load(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
String value = props.getProperty(key);
System.out.println(key + "键的值是:" + value);
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

/**
* 更新(或插入)一对properties信息(主键及其键值) 如果该主键已经存在,更新该主键的值; 如果该主键不存在,则插件一对键值。
*
* @param key
* 键名
* @param value
* 键值
*/
public static void writePropertiesFile(String filePath, String key, String value) throws IOException {
Properties properties = new Properties();
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
properties.load(new InputStreamReader(new FileInputStream(file),"UTF-8"));
// 必须先用map将所有的内容先保存,不然一更新,原来的内容都没了
Map<String, String> map = new HashMap<String, String>();
Set<Object> keySet = properties.keySet();
for (Object object : keySet) {
String keytmp = (String) object;
String valuetmp = (String) properties.getProperty(keytmp);
System.out.println(keytmp + "=" + valuetmp);
map.put(keytmp, valuetmp);
}
map.put(key, value);
for (java.util.Map.Entry<String, String> entry : map.entrySet()) {
properties.setProperty(entry.getKey(), entry.getValue());
}
FileOutputStream fos = new FileOutputStream(file);
properties.store(new OutputStreamWriter(fos), "update");
fos.close();
fis.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值