관리 메뉴

nkdk의 세상

Java Properties 사용하기 본문

My Programing/JAVA

Java Properties 사용하기

nkdk 2009. 7. 7. 10:14

프로젝트를 하다보면 프로퍼티 관리를 한 곳으로 몰아야 하는 경우가 생긴다. 그 프로퍼티를 직접 만드는 것이 아니라 자바에서 지원해주는 함수가 있어서 소개 할까 한다. ^^


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");
        }
    }
}