处理Properties文件的另一更佳解决方案:见http://blog.csdn.net/softwave/article/details/6873227《Java的Properties文件操作类》 (摘者按)
package com.luang.util.properties;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;
/**
*
* PropertiesUtil.java
*
* @desc properties 资源文件解析工具
* @author Guoxp
* @datatime Apr 7, 2013 3:58:45 PM
*
*/
public class PropertiesUtil {
private Properties props;
private URI uri;
public PropertiesUtil(String fileName){
readProperties(fileName);
}
private void readProperties(String fileName) {
try {
props = new Properties();
InputStream fis =getClass().getResourceAsStream(fileName);
props.load(fis);
uri = this.getClass().getResource("/dbConfig.properties").toURI();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取某个属性
*/
public String getProperty(String key){
return props.getProperty(key);
}
/**
* 获取所有属性,返回一个map,不常用
* 可以试试props.putAll(t)
*/
public Map getAllProperty(){
Map map=new HashMap();
Enumeration enu = props.propertyNames();
while (enu.hasMoreElements()) {
String key = (String) enu.nextElement();
String value = props.getProperty(key);
map.put(key, value);
}
return map;
}
/**
* 在控制台上打印出所有属性,调试时用。
*/
public void printProperties(){
props.list(System.out);
}
/**
* 写入properties信息
*/
public void writeProperties(String key, String value) {
try {
OutputStream fos = new FileOutputStream(new File(uri));
props.setProperty(key, value);
// 将此 Properties 表中的属性列表(键和元素对)写入输出流
props.store(fos, "『comments』Update key:" + key);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
PropertiesUtil util=new PropertiesUtil("src/dbConfig.properties");
util.writeProperties("dbtype", "MSSQL");
}
}
转自【http://blog.csdn.net/guoxuepeng123/article/details/8797916】