[Day 9 | Java] Properties 클래스를 활용한 구성 정보 관리

y♡ding·2024년 10월 24일
0

데브코스 TIL

목록 보기
50/163

Properties 클래스는 자바에서 프로그램 설정이나 구성 정보를 관리할 때 매우 유용하게 사용됩니다. 이 클래스는 Map 인터페이스를 구현한 특수한 형태로, 키-값 쌍을 문자열(String)로 저장하며, 설정 정보를 파일로 저장하거나 파일에서 읽어오는 기능을 제공합니다.

1. Properties를 파일로 저장하기

Properties 클래스는 store() 메서드를 이용하여 키-값 쌍을 파일에 저장할 수 있습니다. 이때, FileWriter 또는 OutputStream을 사용하여 파일에 저장할 수 있습니다.

예시 코드: Properties를 파일로 저장

package com.io1;

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

public class IOEx19 {
    public static void main(String[] args) {
        // Properties 객체 생성
        Properties prop = new Properties();
        
        // 키-값 쌍 추가 
        prop.setProperty("id", "andy");
        prop.setProperty("password", "1234");
        prop.setProperty("grade", "A");

        FileWriter fw = null;
        try {
            fw = new FileWriter("./config.properties");
            // 두 번째 인자는 파일에 대한 설명 (주석으로 저장됨)
            prop.store(fw, "System Config");  
            System.out.println("저장 완료");
        } catch (IOException e) {
            System.out.println("[에러] " + e.getMessage());
        } finally {
            if (fw != null) { try { fw.close(); } catch (IOException e) {} }
        }
    }
}

파일에 저장된 내용 (config.properties)

# System Config
# Tue Oct 24 11:30:45 KST 2024
id=andy
password=1234
grade=A
  • 파일 맨 위에 있는 주석 부분store()메서드에 전달된 설명과 저장된 날짜입니다.
  • 그 아래에는 키-값 쌍이 저장되어 있습니다.

2. Properties 파일 불러오기

저장된 Properties 파일을 불러오려면 load() 메서드를 사용하여 파일의 내용을 키-값 쌍으로 메모리에 로드할 수 있습니다.

예시 코드: 파일에서 Properties 읽기

package com.io1.properties;

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

public class IOEx20 {
    public static void main(String[] args) {
        FileReader fr = null;
        try {
            fr = new FileReader("./config.properties");
            Properties prop = new Properties();
            prop.load(fr);  // 파일에서 설정 정보 읽기

            System.out.println(prop);  // 저장된 모든 키-값 쌍 출력
        } catch (IOException e) {
            System.out.println("[에러] " + e.getMessage());
        } finally {
            if (fr != null) { try { fr.close(); } catch (IOException e) {} }
        }
    }
}

출력 결과

{password=1234, grade=A, id=andy}

load() 메서드를 사용하여 파일에 저장된 키-값 쌍을 프로그램 내에서 쉽게 불러와 사용할 수 있습니다.


3. 구성 정보 관리의 장점

Properties 클래스를 사용하면 프로그램 설정이나 환경 정보를 외부 파일로 관리할 수 있어, 프로그램을 수정하지 않고도 설정 파일만 변경하여 구성을 바꿀 수 있습니다. 예를 들어, 데이터베이스 설정, 사용자 인증 정보 등을 쉽게 관리할 수 있습니다.

store() 메서드로 파일 저장

  • store(Writer writer, String comments)는 키-값 쌍을 파일에 저장하고, 주석으로 설명을 추가할 수 있습니다.

load() 메서드로 파일 읽기

  • load(Reader reader)는 파일에 저장된 설정 정보를 불러와서 Properties 객체에 저장합니다.

결론

  • Properties 클래스는 설정 파일을 읽고 쓰는 데 매우 유용하며, 구성 정보를 관리하는 데 적합합니다.
  • 파일로 설정을 저장하여 프로그램의 유연성을 높이고, 프로그램 실행 시 필요한 설정 정보를 쉽게 불러올 수 있습니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN