1. 程式人生 > >Java讀寫Properties 檔案

Java讀寫Properties 檔案


private final static String SYS_TEMP_FILE = System
.getProperty("java.io.tmpdir") + "\\9884698793643198z.properties";
private static Map<String, String> fileNames = null;

/**
* get a file path from a system temp file.
*
* @param keyOfFileName
* @return
*/
public static final String getAFilePathFromSysTempFile(String keyOfFileName) {
if (null == fileNames) {
fileNames = new HashMap<String, String>();
loadFilePathsFromSysTempFile();
}
String path = fileNames.get(keyOfFileName);
return null == path ? "" : path;
}

private static final boolean loadFilePathsFromSysTempFile() {
try {
if (!new File(SYS_TEMP_FILE).exists()) {
new File(SYS_TEMP_FILE).createNewFile();
return true;
}
Properties props = new Properties();
InputStream in = new BufferedInputStream(new FileInputStream(
SYS_TEMP_FILE));
props.load(in);
Enumeration<?> en = props.propertyNames();
while (en.hasMoreElements()) {
String key = (String) en.nextElement();
String prop = props.getProperty(key);
fileNames.put(key, prop);

}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

/**
* save a file path to a system temp file.
*
* @param parameterName
* @param parameterValue
* @return
*/
public static final int saveAFilePathToSysTempFile(String parameterName,
String parameterValue) {
Properties prop = new Properties();
try {
InputStream fis = new FileInputStream(SYS_TEMP_FILE);
prop.load(fis);

OutputStream fos = new FileOutputStream(SYS_TEMP_FILE);
prop.setProperty(parameterName, parameterValue);
prop.store(fos, "Update '" + parameterName + "' value");

fileNames.put(parameterName, parameterValue);
return fileNames.size();
} catch (IOException e) {
e.printStackTrace();
return -1;
}
}