Properties — 지속적인 속성 집합
Properties — 지속적인 속성 집합
Properties 클래스는 지속적인 속성(property) 집합을 나타내요. 속성은 스트림에 저장하거나 스트림에서 불러올 수 있어요. 속성 목록의 각 키와 해당 값은 문자열이에요. 속성 목록은 다른 속성 목록을 "defaults"(기본값)로 가질 수 있는데, 원래 목록에서 키를 찾지 못하면 이 기본 목록을 검색해요.
본문
public class Properties extends Hashtable<Object, Object>
Properties는 Hashtable에서 상속하므로 put/putAll을 적용할 수 있지만, 키나 값이 String이 아닌 항목을 넣을 수 있어 사용을 권장하지 않아요. 대신 setProperty를 사용해야 해요. String이 아닌 키/값을 가진 "손상된" Properties에 store/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">선언을 가져야 해요.