Properties — 지속적인 속성 집합

Properties — 지속적인 속성 집합

Properties 클래스는 지속적인 속성(property) 집합을 나타내요. 속성은 스트림에 저장하거나 스트림에서 불러올 수 있어요. 속성 목록의 각 키와 해당 값은 문자열이에요. 속성 목록은 다른 속성 목록을 "defaults"(기본값)로 가질 수 있는데, 원래 목록에서 키를 찾지 못하면 이 기본 목록을 검색해요.

출처: Java API Reference

본문

public class Properties extends Hashtable<Object, Object>

PropertiesHashtable에서 상속하므로 put/putAll을 적용할 수 있지만, 키나 값이 String이 아닌 항목을 넣을 수 있어 사용을 권장하지 않아요. 대신 setProperty를 사용해야 해요. String이 아닌 키/값을 가진 "손상된" Propertiesstore/save를 호출하면 실패해요.

load(Reader)/store(Writer, String) 메서드는 간단한 줄 기반 형식으로 문자열 스트림에서 속성을 읽고 써요. load(InputStream)/store(OutputStream, String)은 ISO 8859-1 인코딩을 사용한다는 점을 제외하고 동일해요. 그 인코딩으로 표현할 수 없는 문자는 유니코드 이스케이프(\uXXXX)로 써요. loadFromXML/storeToXML 메서드는 XML 형식으로도 읽고 쓸 수 있어요.

생성자

  • Properties() — 기본값 없는 빈 목록을 만들어요.
  • Properties(int initialCapacity) — 기본값 없이 지정된 초기 크기의 빈 목록을 만들어요.
  • Properties(Properties defaults) — 지정된 기본값을 가진 빈 목록을 만들어요.

필드

protected volatile Properties defaults — 이 목록에서 찾지 못한 키의 기본값을 담는 속성 목록이에요.

핵심 메서드

  • setProperty(String key, String value)Hashtable.put을 호출하는데, 속성 키/값에 문자열을 강제해요.
  • getProperty(String key) — 키를 검색하고 없으면 기본 목록을 재귀적으로 확인해요. 없으면 null을 반환해요.
  • getProperty(String key, String defaultValue) — 찾지 못하면 기본값 인자를 반환해요.
  • propertyNames() — 기본 목록의 별도 키를 포함한 모든 키의 Enumeration을 반환해요.
  • stringPropertyNames() — 키와 값이 모두 문자열인 키들의 수정 불가능한 집합을 반환해요.
  • list(PrintStream) / list(PrintWriter) — 속성 목록을 출력해 디버깅에 유용해요.

저장/로드

  • load(Reader) / load(InputStream) — 속성 목록을 읽어요.
  • store(Writer, String) / store(OutputStream, String) — 속성 목록을 써요. defaults 표는 쓰지 않아요.
  • save(OutputStream, String)store를 호출하되 IOException을 억제하는 deprecated 메서드예요.
  • loadFromXML(InputStream) / storeToXML(OutputStream, String) / storeToXML(OutputStream, String, String) / storeToXML(OutputStream, String, Charset) — XML 형식으로 읽고 써요. 문서는 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 선언을 가져야 해요.

더 알아보기 (Learn more)