Properties
클래스는 키와 값을 문자열(String) 형태로 저장하는 특수한 HashMap
클래스입니다. 자바에서 설정 파일(예: .properties
파일)을 읽고 쓰는 데 자주 사용되며, 시스템 설정이나 애플리케이션의 구성 정보를 관리할 때 유용합니다. 기본적으로 키-값 쌍으로 데이터를 저장하는데, 키와 값이 모두 문자열로 제한됩니다.
Properties
클래스는 자바의 Hashtable
클래스를 상속받았으며, 키와 값이 모두 문자열이어야 한다는 특징을 제외하고는 다른 맵 클래스와 유사한 동작을 합니다.
Properties
는 키와 값이 모두 문자열로 저장됩니다..properties
파일 형태로 설정 정보를 읽고 쓰는 기능을 제공합니다.수업코드
package com.util1;
import java.util.Properties;
import java.util.Set;
public class PropertiesEx01 {
public static void main(String[] args) {
// 1. Properties 객체 생성 (사용자 정의 설정 값 저장용)
// Properties는 키-값 쌍을 저장하는 클래스로, 문자열 기반 설정 정보를 관리할 때 사용됨
Properties prop = new Properties();
// 2. 사용자 설정 값 저장 (setProperty 메서드 사용)
prop.setProperty("timeout", "30"); // timeout 설정 (문자열로 저장)
prop.setProperty("language", "kr"); // language 설정
prop.setProperty("size", "10"); // size 설정
prop.setProperty("capacity", "10"); // capacity 설정
// 3. 저장된 모든 키-값 쌍 출력
// Properties 객체 자체를 출력하면 내부에 저장된 모든 키-값 쌍이 출력됨
System.out.println(prop); // 출력: {timeout=30, language=kr, size=10, capacity=10}
// 4. Properties에 저장된 설정 항목 개수 출력
System.out.println(prop.size()); // 4
// 5. 특정 설정 값을 가져와 출력 (getProperty 메서드 사용)
System.out.println(prop.getProperty("timeout")); // 30
System.out.println(prop.getProperty("language")); // kr
// 6. 모든 키 값 가져오기 (stringPropertyNames 메서드 사용)
// 이 메서드는 Properties에 저장된 모든 키를 Set<String>으로 반환함
Set<String> names = prop.stringPropertyNames();
// 반복문을 통해 모든 키 출력
for (String name : names) {
System.out.println(name); // 출력: timeout, language, size, capacity
}
// 7. 시스템 속성 값 가져오기
// System.getProperties() 메서드를 통해 JVM의 시스템 속성 정보를 가져옴
Properties prop2 = System.getProperties();
// 8. 시스템 속성에 저장된 모든 키를 가져오기
Set<String> keys = prop2.stringPropertyNames();
// 반복문을 통해 모든 시스템 속성 키 출력
for (String key : keys) {
System.out.println(key); // 각 시스템 속성의 키값 출력
}
// 9. 특정 시스템 속성 값 가져오기 (OS 이름, 줄바꿈, 자바 버전 등)
System.out.println(prop2.getProperty("os.name")); // 운영체제 이름 출력
System.out.println(prop2.getProperty("line.separator")); // 줄바꿈 문자 출력 (보통 \n, \r\n 등)
System.out.println(prop2.getProperty("java.version")); // 자바 버전 출력
}
}