package testJava;
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.util.Enumeration;
import java.util.Properties;
public class testProperties {
private static String propertiesName = "server.properties";
private static String serverAddr = "";
private static Integer serverPort = 0;
private static Integer threadCnt = 0;
public static void main(String[] args) {
System.out.println("before load Properties");
System.out.println("serverAddr:"+serverAddr+"\nserverPort:"+serverPort+"\nthreadCnt:"+threadCnt);
System.out.println("after load Properties");
loadParams();
System.out.println("serverAddr:"+serverAddr+"\nserverPort:"+serverPort+"\nthreadCnt:"+threadCnt);
System.out.println("==================");
System.out.println("save value to Properties");
System.out.println("serverAddr:"+serverAddr+"\nserverPort:"+serverPort+"\nthreadCnt:"+threadCnt);
serverAddr = "192.168.0.0";
serverPort = 4543;
threadCnt = 111;
saveParamChanges();
System.out.println("load value form Properties");
loadParams();
System.out.println("serverAddr:"+serverAddr+"\nserverPort:"+serverPort+"\nthreadCnt:"+threadCnt);
System.out.println("==================");
System.out.println("print all content");
printThemAll();
}
public static void loadParams() {
Properties props = new Properties();
InputStream is = null;
// First try loading from the current directory
try {
is = new FileInputStream(propertiesName);
props.load(is);
serverAddr = props.getProperty("ServerAddress");
serverPort = new Integer(props.getProperty("ServerPort"));
threadCnt = new Integer(props.getProperty("ThreadCount"));
} catch (Exception e) {
System.out.println(e.getMessage().toString());
}finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
System.out.println(e.getMessage().toString());
}
}
}
}
public static void saveParamChanges() {
OutputStream out = null;
Properties props = new Properties();
try {
props.setProperty("ServerAddress", serverAddr);
props.setProperty("ServerPort", ""+serverPort);
props.setProperty("ThreadCount", ""+threadCnt);
out = new FileOutputStream(propertiesName);
props.store(out, "This is an optional header comment string");
}
catch (Exception e ) {
System.out.println(e.getMessage().toString());
}finally {
if (out != null) {
try {
out.close();
} catch (Exception e) {
System.out.println(e.getMessage().toString());
}
}
}
}
private static void printThemAll() {
Properties prop = new Properties();
InputStream input = null;
try {
String filename = propertiesName;
input = new FileInputStream(propertiesName);
prop.load(input);
if (input == null) {
System.out.println("Sorry, unable to find " + filename);
return;
}
Enumeration e = prop.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = prop.getProperty(key);
System.out.println("Key : " + key + ", Value : " + value);
}
} catch (Exception e) {
System.out.println(e.getMessage().toString());
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
System.out.println(e.getMessage().toString());
}
}
}
}
}
console
before load Properties serverAddr: serverPort:0 threadCnt:0 after load Properties server.properties (系統找不到指定的檔案。) serverAddr: serverPort:0 threadCnt:0 ================== save value to Properties serverAddr: serverPort:0 threadCnt:0 load value form Properties serverAddr:192.168.0.0 serverPort:4543 threadCnt:111 ================== print all content Key : ServerPort, Value : 4543 Key : ServerAddress, Value : 192.168.0.0 Key : ThreadCount, Value : 111
沒有留言:
張貼留言