티스토리 뷰

JAVA(프로그래밍)

java Properties 사용하기

알 수 없는 사용자 2018. 7. 25. 13:30

java Properties 사용하기

 

소스에 직접 값을 하드코딩하는 경우가 있습니다.
하지만 이럴 경우 유지보수도 힘들어 질뿐만 아니라 하드코딩된 변수가 많다면
일일이 소스에서 고쳐서 다시 컴파일을 해야 하는 과정을 거치므로 상당히 불편합니다.

이번에는 java Properties를 사용하여 파일에서 직접 값들을 설정하여  읽어오는 방법을
알아보도록 하겠습니다.

보통은 설정값등을 properties 파일로 빼 놓고 관리합니다.

다국어 언어 메세지 등등..
properties 파일의 쓰임새는 빈번하게 사용되고 있습니다.

Properties는 HashTable을 상속받아 구현한 컬렉션의 한종류입니다.
HashMap은 키와 값(Object, Object) 형태로 저장하는데 Properties는 오브젝트가 아닌 String형태로
저장하는 보다 간단한 컬렉션 클래스 입니다.

 

sample2.properties
-------------------------------------------------------------------------------------
test.select=\uC815\uC0C1\uC801\uC73C\uB85C \uC870\uD68C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
test.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
test.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
test.success.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
---------------------------------------------------------------------------------------------

 

 properties 파일에서 주석을 사용하려면 앞에 #을 붙히면 주석으로 인식합니다.

 

---------------------------------------------------------------

test.success.delete=정상적으로 삭제되었습니다.
test.update=정상적으로 수정되었습니다.
test.select=정상적으로 조회되었습니다.
test.insert=정상적으로 등록되었습니다.
----------------------------------------------------

 

해당 파일은 한글로 작성되었으나 properties에서는 유니코드로 작성되어야 정상적인 한글이 출력됩니다.

 

 

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Test {

 @SuppressWarnings("unchecked")
 public static void main(String[] args) {

  // 1.파일을 불러오기
  Properties pro= new Properties();
  try {
   pro.load(new FileInputStream("C:\\Users\\lee se jin\\eclipse-workspace\\org.eclipse.ui.examples.javaeditor\\sample2.properties"));
  } catch (IOException e) {
   System.out.println("파일 불러오기 오류 -> " + e);
  }
  // 2.저장된 속성값 불러오기 -> getProperty("키명") , setProperty(키명, 값)
  String avalue= pro.getProperty("test.select"); // 대소문자 구분
  System.out.println("test.select  : " + avalue);
 }
}

 

출력값

test.select : 정상적으로 조회되었습니다.

해당 경로에 위치한 C:\\Users\\lee se jin\\eclipse-workspace\\org.eclipse.ui.examples.javaeditor\\sample2.properties 파일에 접근하여 test.select에 해당하는 값을 가져와 뿌려주고 있습니다.

 

여기서 키는 "test.select"에 해당됩니다.

 

 

pro.list(System.out);// 전체프로포티 값 출력.

해당 메소드는 전체 프로퍼티값을 출력합니다.

 

 


속성 값 바꾸기

 저장된 속성명의 특정값을 변경시켜 보겠습니다.

setProperty("키", "값");

 

  pro.setProperty("test.select", "error~~~~~"); //값을 변경

 

-- listing properties --
test.success.delete=정상적으로 삭제되었습니다.
test.update=정상적으로 수정되었습니다.
test.select=error~~~~~
test.insert=정상적으로 등록되었습니다.

 

test.select 값이 변경된걸 확인할수 있습니다.

 

하지만 메모리상에서만 변경이 될뿐 실제 파일에 있는 값은 변경이 되지 않습니다.


 

 

 

 

 

댓글