[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();
}