프로젝트를 하다보면 프로퍼티 관리를 한 곳으로 몰아야 하는 경우가 생긴다. 그 프로퍼티를 직접 만드는 것이 아니라 자바에서 지원해주는 함수가 있어서 소개 할까 한다. ^^
java.util.Properties 클래스를 사용하여 server IP를 유동적으로 관리 할 수
있는 방법이다.
import java.util.*;
import java.io.*;
public class PropertyTest {
private String
PROPERTIES_FILE = "C:\\globals.properties";
/**
* 특정 키값을 반환한다.
*/
private String getProperty(String keyName) {
String value = null;
try {
Properties props = new Properties();
FileInputStream
fis = new FileInputStream(PROPERTIES_FILE);
props.load(new java.io.BufferedInputStream(fis));
value = props.getProperty(keyName).trim();
fis.close();
} catch
(java.lang.Exception e) {
System.out.println(e.toString());
}
return value;
}
/**
* 특정 키 이름으로 값을 설정한다.
*/
private void setProperty(String keyName, String value) {
try {
Properties props = new Properties();
FileInputStream fis = new FileInputStream(PROPERTIES_FILE);
props.load(new java.io.BufferedInputStream(fis));
props.setProperty(keyName, value);
props.store(new FileOutputStream(GLOBALS_PROPERTIES_FILE), "");
fis.close();
} catch(java.lang.Exception e) {
System.out.println(e.toString());
}
}
public static void main(String args[]) {
PropertyTest o = null;
if (args.length == 1) {
o = new PropertyTest();
System.out.println(args[0] + ":[" + o.getProperty(args[0]) + "]");
} else if (args.length == 2) {
o = new PropertyTest();
o.setProperty(args[0], args[1]);
System.out.println(args[0] +
":[" + o.getProperty(args[0]) + "]");
} else {
System.out.println("wrong argument");
}
}
}