Properties 클래스는 Java 컬렉션 프레임워크의 일부로, 특히 키와 값이 문자열로 구성된 속성(property)을 관리하기 위한 클래스입니다. 주로 설정 파일이나 속성 파일에서 데이터를 읽고 쓸 때 사용됩니다.
1. Properties 클래스의 주요 특징
- Hashtable을 상속받음: Properties는 Hashtable을 확장한 클래스로, 키와 값의 쌍을 저장하기 위해 해시 테이블을 사용합니다.
- 문자열 키와 값: Properties는 키와 값이 모두 문자열로 제한됩니다. 따라서 주로 설정 정보를 문자열 형태로 다룰 때 활용됩니다.
주로 설정 파일에서 사용: 일반적으로 시스템의 설정 정보를 저장하고 읽어올 때 사용됩니다. 확장자가 .properties인 파일에 저장되며, load 및 store 메서드를 통해 파일과의 입출력을 지원합니다.
2. Properties 클래스의 주요 메서드
- setProperty(String key, String value): 지정된 키와 값으로 속성을 설정합니다.
- getProperty(String key): 지정된 키에 대한 값을 반환합니다.
- getProperty(String key, String defaultValue): 지정된 키에 대한 값을 반환하며, 키가 없을 경우 기본값을 반환합니다.
- load(InputStream inStream): 입력 스트림에서 속성을 로드합니다.
- store(OutputStream out, String comments): 출력 스트림에 속성을 저장합니다.
- stringPropertyNames(): 속성의 키 집합을 문자열 형태로 반환합니다.
Properties 클래스 예제
아래는 Properties 클래스의 간단한 예제입니다.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesExample {
public static void main(String[] args) {
// Properties 객체 생성
Properties properties = new Properties();
// 속성 설정
properties.setProperty("username", "john_doe");
properties.setProperty("password", "secretpassword");
properties.setProperty("server", "example.com");
// 속성 출력
System.out.println("Username: " + properties.getProperty("username"));
System.out.println("Password: " + properties.getProperty("password"));
System.out.println("Server: " + properties.getProperty("server"));
// 파일로 저장
try (FileOutputStream output = new FileOutputStream("config.properties")) {
properties.store(output, "Sample Properties");
} catch (IOException e) {
e.printStackTrace();
}
// 파일에서 로드
Properties loadedProperties = new Properties();
try (FileInputStream input = new FileInputStream("config.properties")) {
loadedProperties.load(input);
} catch (IOException e) {
e.printStackTrace();
}
// 로드된 속성 출력
System.out.println("\nLoaded Properties:");
loadedProperties.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
이 예제에서는 Properties를 생성하고 몇 가지 속성을 설정한 다음, 파일에 저장하고 다시 파일에서 읽어옵니다. 주의할 점은 파일의 경로를 지정할 때 상대 경로나 절대 경로를 사용할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 제네릭스(Generics) (0) | 2023.11.19 |
---|---|
자바 컬렉션 프레임워크 Collections (0) | 2023.11.19 |
자바 컬렉션 프레임워크 TreeMap (0) | 2023.11.19 |
자바 컬렉션 프레임워크 Hashtable (0) | 2023.11.18 |
자바 컬렉션 프레임워크 HashMap (0) | 2023.11.18 |