프로그래밍/JAVA

[JAVA] Properties 란?

리신 2023. 1. 31. 22:21
반응형

Properties 란?

  • Properties는 HashMap의 구버전인 Hashtable을 상속받아 구현한 것으로, Hashtable은 키와 값을 (Object, Object)의 형태로 저장하는데 비해 Properties는 (String, String)형태로 저장하는 보다 단순화된 컬렉션 클래스이다.
  • 주로 애플리케이션의 환경설정과 관련된 속성을 저장하는데 사용되며 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공한다. 그래서 간단한 입출력은 Properties를 활용하면 몇 줄의 코드로 쉽게 해결할 수 있다.

 


간단한 예제로 사용하는 방법을 알아보자!

public class PropertiesEx1 {
    public static void main(String[] args) {
        Properties prop = new Properties();
		
        /* prop에 키와 값(key,value)를 저장한다.*/
        prop.setProperty("timeout", "30");
        prop.setProperty("language", "kr");
        prop.setProperty("size", "10");
        prop.setProperty("capacity", "10");

        /* prop 저장된 요소들을 Enumeration을 이용해 출력 */
        Enumeration enumeration = prop.propertyNames();

        while (enumeration.hasMoreElements()) {
            String element = (String) enumeration.nextElement();
            System.out.println(element + "=" + prop.getProperty(element));
        }

        System.out.println();
        prop.setProperty("size", "20"); // 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에 저장된 요소들을 출력한다.
        properties.list(System.out); // prop에 저장된 요소들을 화면에 출력한다.
    }
}

위 예제는  properties의 기본적인 메서드를 이용해서 저장하고, 읽어오고, 출력하는 방법을 보여준다.

 


1. 데이터를 저장하는데 사용되는 setProperty()는 단순히 Hashtable의 put메서드를 호출함.

 

2. setProperty()는 기존에 같은 키로 저장된 값이 있는 경우 그 값을 Object타입으로 반환하며, 그렇지 않을 경우 null을 반환함.

 

3.  getProperty()는 properties에 저장된 값을 읽어오는 일을 하는데 만일 읽어오려는 키가 존재하지 않으면 지정된 기본값을 반환함.

 

4. Properties는 컬렉션프레임워크 이전의 구버전이기 때문에 Iterator가 아닌 Enumeration을 사용함.

 

5. list()를 이용하면 Properties에 저장된 모든 데이터를 화면 또는 파일에 편리하게 출력할 수 있음.

 

 

참고자료 : 자바의 정석

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[ JAVA ] 입출력  (0) 2023.04.05
[ JAVA ] 쓰레드란?  (0) 2023.02.21
[JAVA] TreeMap 이란  (0) 2023.01.29
[JAVA] LinkedList  (0) 2023.01.05
[JAVA] ArrayList 사용방법  (1) 2023.01.05