This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"); | |
} | |
} |
沒有留言:
張貼留言