2013년 7월 1일 월요일

java.util.Properties

java.util.Properties


 property 들을 java 파일 내부에서 설정하여 사용하는 것은 프로그래밍하기는 쉽지만 단점이 더 만다. 

설정 정보를 변경하기 위해서는 소스 코드를 재컴파일해야 한다는 점이다. 
배포 시 각 환경에 맞게 소스 내의 property 설정을 수정하여 일일히 재컴파일을 해야하는 문제가 생긴다.

이러한 문제를 해결하기 위한 방법으로 property 설정 파일을 이용할 수 있다.

java.util.Properties Class를 사용하여 property 정보를 읽어 올 수 있다.

java.util.Hashtable Class를 상속받고 있기 때문에 형태로 저장된다.

Method 목록은 아래에 있는 Java Document 참고.



Test



import java.util.*;
import java.io.*;

public class Test130701 {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Properties prop = new Properties();
  
  prop.setProperty("timeout", "30");
  prop.setProperty("language", "kr");
  prop.setProperty("size", "10");
  prop.setProperty("capacity", "10");
  
  Enumeration e = prop.propertyNames();
  
  while (e.hasMoreElements()) {
   String element = (String)e.nextElement();
   System.out.println(element + " = " + prop.getProperty(element));
  }
  
  System.out.println();
  prop.setProperty("size", "20");
  System.out.println("size = " + prop.getProperty("size"));
  System.out.println("capacity = " + prop.getProperty("capacity", "20"));
  System.out.println("loadfactor = " + prop.getProperty("loadfactor", "0.75"));
  
  System.out.println(prop);
  prop.list(System.out);
  
  String fileName = "output_test.txt";
  Properties prop2 = new Properties();
  try {
   prop.store(new FileOutputStream(fileName), "Test");
   prop.storeToXML(new FileOutputStream("output_test.xml"), "Test");
   
   prop2.load(new FileInputStream(fileName));
  } catch (FileNotFoundException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  } catch (IOException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  
  System.out.println();
  String size = prop2.getProperty("size");
  System.out.println("Size : " + size); 
 }
}


참고

댓글 없음:

댓글 쓰기