|
import java.io.FileInputStream; |
|
import java.io.FileNotFoundException; |
|
import java.io.FileOutputStream; |
|
import java.io.IOException; |
|
import java.util.Properties; |
|
|
|
/** |
|
* 讀取與更改Properties文件 |
|
*/ |
|
public class PropertiesU { |
|
private Properties propertie; |
|
private FileInputStream inputFile; |
|
private FileOutputStream outputFile; |
|
|
|
/** |
|
* 初始化PropertiesUtil類 |
|
*/ |
|
public PropertiesU(){ |
|
propertie = new Properties(); |
|
} |
|
|
|
/** *//** |
|
* 初始化PropertiesUtil類 |
|
* @param filePath 要讀取的配置文件的路徑+名稱 |
|
*/ |
|
public PropertiesU(String filePath){ |
|
propertie = new Properties(); |
|
|
|
try { |
|
inputFile = new FileInputStream(filePath); |
|
propertie.load(inputFile); |
|
inputFile.close(); |
|
|
|
}catch (FileNotFoundException ex) { |
|
System.out.println("the properties file doesn't exist at the path:"+filePath); |
|
ex.printStackTrace(); |
|
|
|
}catch (IOException ex) { |
|
System.out.println("fail to load the properties file"); |
|
ex.printStackTrace(); |
|
|
|
} |
|
}//end ReadConfigInfo() |
|
|
|
/** |
|
* 得到key的值 |
|
* @param key 取得其值的key |
|
* @return key的值 |
|
*/ |
|
public String getValue(String key){ |
|
if(propertie.containsKey(key)){ |
|
String value = propertie.getProperty(key); |
|
return value; |
|
|
|
}else { |
|
return ""; |
|
|
|
} |
|
} |
|
|
|
/** |
|
* 重載函數,得到key的值 |
|
* @param fileName properties文件的路徑+文件名 |
|
* @param key 取得其值的key |
|
* @return key的值 |
|
*/ |
|
public String getValue(String fileName, String key){ |
|
|
|
try { |
|
String value = ""; |
|
inputFile = new FileInputStream(fileName); |
|
propertie.load(inputFile); |
|
inputFile.close(); |
|
|
|
if(propertie.containsKey(key)){ |
|
value = propertie.getProperty(key); |
|
return value; |
|
|
|
}else { |
|
return value; |
|
|
|
} |
|
|
|
}catch (FileNotFoundException e) { |
|
e.printStackTrace(); |
|
return ""; |
|
|
|
}catch (IOException e) { |
|
e.printStackTrace(); |
|
return ""; |
|
|
|
}catch (Exception ex) { |
|
ex.printStackTrace(); |
|
return ""; |
|
|
|
} |
|
}//end getValue() |
|
|
|
/** |
|
* 清除properties文件中所有的key和value |
|
*/ |
|
public void clear(){ |
|
propertie.clear(); |
|
} |
|
|
|
/** |
|
* 改變或新加一個key的值,當key存在於properties文件中時該key的值被value所代替, |
|
* 當key不存在時,該key的值是value |
|
* @param key 要存入的key |
|
* @param value 要存入的value |
|
*/ |
|
public void setValue(String key, String value){ |
|
propertie.setProperty(key, value); |
|
} |
|
|
|
/** |
|
* 將更改後的文件數據存入指定的文件中,該文件可以事先不存在。 |
|
* @param fileName 文件路徑+文件名稱 |
|
* @param description 對該文件的描述 |
|
*/ |
|
public void saveFile(String fileName, String description){ |
|
try { |
|
outputFile = new FileOutputStream(fileName); |
|
propertie.store(outputFile, description); |
|
outputFile.close(); |
|
|
|
}catch (FileNotFoundException e) { |
|
e.printStackTrace(); |
|
|
|
}catch (IOException ioe){ |
|
ioe.printStackTrace(); |
|
|
|
} |
|
} |
|
|
|
public static void main(String[] args) throws Exception{ |
|
|
|
PropertiesU rc = new PropertiesU("e:\\test.properties"); |
|
rc.setValue("mulder", "tom"); |
|
String hwj = rc.getValue("mulder"); |
|
System.out.println("hwj's value:"+hwj); |
|
rc.setValue("jason", "jennifer"); |
|
rc.saveFile("e:\\test.properties", "新增key-value"); |
|
|
|
} |
|
|
|
} |