|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.Dictionary <K, V>
java.util.Hashtable <Object ,Object >
java.util.Properties
public class Properties
Properties
클래스는, 불변의 프로퍼티 세트를 나타냅니다. Properties
를, 스트림에 보관하거나 스트림로부터 로드하거나 할 수 있습니다. 프로퍼티 리스트의 각 키, 및 거기에 대응하는 값은 캐릭터 라인입니다.
프로퍼티 리스트에는, 그 「디폴트 값」로서 다른 프로퍼티 리스트를 가질 수가 있습니다. 원의 프로퍼티 리스트로 프로퍼티 키가 발견되지 않으면 이 2 번째의 프로퍼티 리스트가 검색됩니다.
Properties
는 Hashtable
를 상속하므로,Properties
객체에 대해서 put
메소드 및 putAll
메소드를 적용할 수 있습니다. 그러나, 이러한 메소드를 사용하는 것은 추천 되지 않습니다. 이러한 메소드를 사용하면(자), 호출 측에 키 또는 값이 String
가 아닌 엔트리를 삽입시키기 때문입니다. setProperty
메소드를 대신에 사용해 주세요. String
이외의 키 또는 값을 포함하는 「타협적」인 Properties
객체로 store
메소드 또는 save
메소드가 불려 가면(자), 그 호출은 실패합니다. 같이String
이외의 키를 포함하는 「타협적」인 Properties
객체로 propertyNames
또는 list
메소드가 불려 가면(자), 그 호출은 실패합니다.
load(Reader)
/ store(Writer, String)
메소드는, 문자 베이스의 스트림에 대한 프로퍼티의 로드와 포함을, 후술 하는 단순한 행 지향 형식에서 실시합니다.
load(InputStream)
/ store(OutputStream, String)
메소드는 load(Reader) /store(Writer, String) 페어와 같이 동작합니다만, 입력/출력 스트림이 ISO 8859-1 문자 인코딩으로 encode 되는 점만은 다릅니다. 이 인코딩으로 직접 표현할 수 없는 문자는,Unicode 이스케이프를 사용해 기술할 수 있습니다. escape sequence로 사용할 수 있는 것은, 단일의 문자 'u' 뿐입니다. native2ascii 툴을 사용하면(자), 프로퍼티 파일을 다른 문자 인코딩으로 변환하거나 그 역을 실행할 수 있습니다.
loadFromXML(InputStream)
및 storeToXML(OutputStream, String, String)
메소드는, 프로퍼티을 단순한 XML 형식으로서 로드 및 포함할 수 있습니다. 디폴트에서는 UTF-8 문자 인코딩이 사용됩니다만, 필요에 따라서 인코딩을 지정할 수 있습니다. XML 프로퍼티 문서에서는, 다음의 DOCTYPE 선언이 사용됩니다.
<! DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">프로퍼티을 export/임포트 할 경우에, 시스템 URI (http://java.sun.com/dtd/properties.dtd)에는 액세스 하지 않습니다. 시스템 URI 는, DTD 를 일의에 식별하는 캐릭터 라인으로서 사용됩니다. 그 내용은 다음과 같습니다.
<? xml version="1.0" encoding="UTF-8"? > <! -- DTD for properties --> <! ELEMENT properties ( comment?, entry* ) > <! ATTLIST properties version CDATA #FIXED "1.0"> <! ELEMENT comment (#PCDATA) > <! ELEMENT entry (#PCDATA) > <! ATTLIST entry key CDATA #REQUIRED>
이 클래스는 thread 세이프입니다. 외부의 동기화를 실시하지 않아도, 복수의 thread로 단일의 Properties 객체를 공유할 수 있습니다. , 직렬화 된 형식
필드의 개요 | |
---|---|
protected Properties |
defaults
프로퍼티 리스트에 없는 키의 디폴트 값를 가지는 프로퍼티 리스트입니다. |
생성자 의 개요 | |
---|---|
Properties ()
디폴트 값를 가지지 않는 빈 상태(empty)의 프로퍼티 리스트를 작성합니다. |
|
Properties (Properties defaults)
지정된 디폴트 값를 가지는 빈 상태(empty)의 프로퍼티 리스트를 작성합니다. |
메소드의 개요 | |
---|---|
String |
getProperty (String key)
지정된 키를 가지는 프로퍼티을, 프로퍼티 리스트로부터 찾습니다. |
String |
getProperty (String key,
String defaultValue)
지정된 키를 가지는 프로퍼티을, 프로퍼티 리스트로부터 찾습니다. |
void |
list (PrintStream out)
지정된 출력 스트림에, 프로퍼티 리스트를 출력합니다. |
void |
list (PrintWriter out)
지정된 출력 스트림에, 프로퍼티 리스트를 출력합니다. |
void |
load (InputStream inStream)
입력 바이트 스트림로부터 키와 요소가 대가 된 프로퍼티 리스트를 읽어들입니다. |
void |
load (Reader reader)
프로퍼티 리스트 (키와 요소의 페어)를 입력 문자 스트림로부터 단순한 행 지향 형식에서 읽어들입니다. |
void |
loadFromXML (InputStream in)
지정된 입력 스트림상의 XML 문서에 의해 나타내지는 모든 프로퍼티을, 이 프로퍼티 테이블에 로드합니다. |
Enumeration <? > |
propertyNames ()
메인 프로퍼티 리스트에 같은 이름의 키가 발견되지 않는 경우는, 디폴트의 프로퍼티 리스트에 있는 개별의 키를 포함한, 이 프로퍼티 리스트에 있는 모든 키의 리스트를 돌려줍니다. |
void |
save (OutputStream out,
String comments)
추천 되고 있지 않습니다. 이 메소드는, 프로퍼티 리스트의 보존중에 입출력 에러가 발생해도, IOException 를 throw 하지 않습니다. 프로퍼티 리스트의 보존 방법으로서는, store(OutputStream out, String comments) 메소드 또는 storeToXML(OutputStream os, String comment) 메소드의 사용이 추천 됩니다. |
Object |
setProperty (String key,
String value)
Hashtable 의 put 메소드를 호출합니다. |
void |
store (OutputStream out,
String comments)
Properties 테이블내의 프로퍼티 리스트 (키와 요소의 페어)를,load(InputStream) 메소드를 사용해 Properties 테이블에 로드하는데 적절한 포맷으로 출력 스트림에 기입합니다. |
void |
store (Writer writer,
String comments)
Properties 테이블내의 프로퍼티 리스트 (키와 요소의 페어)를,load(Reader) 메소드의 사용에 적절한 형식에서 출력 문자 스트림에 기입합니다. |
void |
storeToXML (OutputStream os,
String comment)
이 테이블에 포함되는 모든 프로퍼티을 나타내는 XML 문서를 발행합니다. |
void |
storeToXML (OutputStream os,
String comment,
String encoding)
이 테이블에 포함되는 모든 프로퍼티을 나타내는 XML 문서를, 지정된 인코딩을 사용해 발행합니다. |
Set <String > |
stringPropertyNames ()
메인 프로퍼티 리스트에 같은 이름의 키가 발견되지 않는 경우는, 디폴트의 프로퍼티 리스트에 있는 개별의 키를 포함한, 키와 거기에 대응하는 값이 캐릭터 라인인 것 같은 이 프로퍼티 리스트내의 키세트를 돌려줍니다. |
클래스 java.util. Hashtable 로부터 상속된 메소드 |
---|
clear , clone , contains , containsKey , containsValue , elements , entrySet , equals , get , hashCode , isEmpty , keys , keySet , put , putAll , rehash , remove , size , toString , values |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
protected Properties defaults
생성자 의 상세 |
---|
public Properties()
public Properties(Properties defaults)
defaults
- 디폴트 값메소드의 상세 |
---|
public Object setProperty(String key, String value)
put
메소드를 호출합니다. getProperty 메소드와 대가 됩니다. 프로퍼티의 키 및 값에 캐릭터 라인을 사용하는 것을 의무화 합니다. 반환된 값은 put
에의 Hashtable 호출의 결과입니다.
key
- 프로퍼티 리스트에 배치되는 키value
- key 에 대응하는 값
null
getProperty(java.lang.String)
public void load(Reader reader) throws IOException
프로퍼티은 행 단위로 처리됩니다. 행에는 「자연행」과「논리행」의 2 종류가 있습니다. 자연행은, 줄 끝 기호 (\n
,\r
, 또는 \r\n
)세트 또는 스트림의 말미로 단락지어진 1 행의 캐릭터 라인으로서 정의됩니다. 자연행은, 공백의 행이나 코멘트행인지, 키와 요소의 페어의 전부 또는 일부를 보관 유지하는 경우가 있습니다. 논리행은, backslash 문자 \
를 사용해 줄 끝 기호 순서를 이스케이프 하는 것으로, 인접하는 복수의 자연행에 걸치는 키와 요소의 페어의 전데이터를 보관 유지합니다. 코멘트행을, 이 방법으로 복수행에 걸치게 할 수 없습니다. 행은, 스트림의 마지막에 이를 때까지 입력으로부터 읽힙니다.
공백 문자만을 포함한 자연행은, 공백이라고 보여져 무시됩니다. 코멘트행에는, ASCII '#'
또는 '! '
가 최초의 비공백 문자로서 포함됩니다. 코멘트행도 무시되어 키와 요소의 정보는 encode 되지 않습니다. 이 형식은, 줄 끝 기호에 가세해 스페이스 (' '
, '\u0020'
), 탭 ('\t'
, '\u0009'
), 및 form feed ('\f'
, '\u000C'
)도 공백으로서 처리합니다.
논리행이 복수의 자연행에 걸치는 경우, 줄 끝 기호 순서를 이스케이프 하는 backslash, 줄 끝 기호 순서, 및 다음의 행의 선두의 공백 문자는, 키 또는 요소의 값에 어떤 영향도 미치지 않습니다. (로드시의) 키와 요소의 구문 분석에 관한 나머지의 기술에서는, 행 계속 문자가 삭제된 후에, 키와 요소를 구성하는 모든 문자가 단일의 자연행에 표시되는 것을 전제로 해서 설명합니다. 줄 끝 기호가 이스케이프 되고 있는지 어떤지를 판정하는 경우, 줄 끝 기호 순서의 전의 문자를 조사하는 것 만으로는 충분하지는 않습니다. 줄 끝 기호가 이스케이프 되기 위해서(때문에)는, 연속한 홀수의 backslash가 존재할 필요가 있습니다. 입력은 왼쪽에서 오른쪽으로 처리되기 (위해)때문에, 줄 끝 기호의 전 (또는 다른 장소)에 제로가 아닌 연속한 backslash가 2n (짝수) 개존재하는 경우, 이스케이프 처리 후에 n 개의 backslash가 encode 됩니다.
키에는 최초의 비공백 문자로부터, 최초의 이스케이프되어 있지 않은 '='
,':'
, 또는 공백 문자의 앞까지의 문자 모든 것 (줄 끝 기호를 제외하다)이 포함됩니다. 이것들 키의 마지막을 나타내는 문자는 모두, backslash를 앞에 두고 붙여 이스케이프 하는 것으로 키에 포함할 수가 있습니다. 예를 들어,
\:\=
에는, 2 문자의 키 「:=
」이 포함됩니다. 줄 끝 기호는, escape sequence \r
및 \n
를 사용해 포함할 수가 있습니다. 이 키의 뒤의 공백은 모두 스킵 됩니다. 이 키에 계속되는 최초의 비공백 문자가 '='
또는 ':'
인 경우, 이것은 무시되어 그 후의 공백 문자도 모두 스킵 됩니다. 행의 나머지의 문자는 모두, 관련하는 요소 캐릭터 라인의 일부가 됩니다. 나머지의 문자가 존재하지 않는 경우, 요소는 빈 상태(empty)의 캐릭터 라인 ""
가 됩니다. 키와 요소를 구성하는 생의 문자 순서가 식별되면(자), 이스케이프 처리가 전술의 방법으로 실행됩니다.
예를 들어, 다음의 3 행은 각각 키 Truth
와 관련한 요소치 Beauty
를 나타냅니다.
Truth = Beauty Truth:Beauty Truth :Beauty또, 다음의 3 행은 1 개의 프로퍼티을 나타냅니다.
fruits apple, banana, pear, \ cantaloupe, watermelon, \ kiwi, mango키는
fruits
로, 다음의 요소에 관련부 라고 있습니다.
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"최종적인 결과로 콤마의 후에 반드시 스페이스가 표시되도록(듯이), 각
\
의전에 스페이스가 있습니다. 행의 마지막을 나타내는 \
과 계속행의 선두에 있는 공백은 파기되어 다른 문자에 치환되지 않습니다.
또, 다음의 3 번째의 예에서는, 키가 cheeses
로, 관련한 요소가 빈 상태(empty)의 캐릭터 라인인 것을 나타냅니다.
cheeses
키와 요소에 포함되는 문자는, 문자 리터럴이나 캐릭터 라인 리터럴로 사용되는 escape sequence를 닮은 순서로 표현할 수 있습니다 (「Java 언어 스펙」의 §3. 3 으로 §3. 10.6 을 참조). 문자 및 캐릭터 라인으로 사용되는 문자 escape sequence나 Unicode 이스케이프와의 차이는, 다음과 같습니다.
\b
는, 백 스페이스 문자를 나타내지 않는다
\
를 에러로서 처리하지 않는다. backslash는 단지 삭제된다. 예를 들어, Java 의 캐릭터 라인에 순서 「\z
」가 포함되어 있으면(자), 컴파일시에 에러가 발생한다. 이것에 대해, 이 메소드는 아무 통지도 없게 backslash를 삭제한다. 이 때문에, 이 메소드에서는 2 문자의 순서 「\b
」는 단일의 문자 「b
」라고 등가이다고 보여진다
지정된 스트림은, 이 메소드가 복귀한 뒤도 연대로 입니다.
reader
- 입력 문자 스트림
IOException
- 입력 스트림로부터의 read중에 에러가 발생했을 경우
IllegalArgumentException
- 부정한 Unicode 이스케이프가 입력내에 나타났을 경우public void load(InputStream inStream) throws IOException
load(Reader)
로 규정된 단순한 행 지향 형식이며, ISO 8859-1 문자 인코딩을 사용하고 있는 것으로 간주해집니다. 즉, 각 바이트가 1 개의 Latin1 문자가 됩니다. Latin1 에 포함되지 않는 문자나 몇개의 특수 문자는, 키나 요소내에서는 Unicode 이스케이프를 사용해 나타내집니다. 지정된 스트림은, 이 메소드가 복귀한 뒤도 연대로 입니다.
inStream
- 입력 스트림
IOException
- 입력 스트림로부터의 read중에 에러가 발생했을 경우
IllegalArgumentException
- 입력 스트림에 부정한 Unicode escape sequence가 포함되는 경우@Deprecated public void save(OutputStream out, String comments)
store(OutputStream out, String comments)
메소드 또는 storeToXML(OutputStream os, String comment)
메소드의 사용이 추천 됩니다.
store(OutputStream out, String comments)
메소드를 호출해, throw 된 IOExceptions 를 억제합니다.
out
- 출력 스트림comments
- 프로퍼티 리스트의 기술
ClassCastException
- 이 Properties
객체에 Strings
가 아닌 키 또는 값이 포함되는 경우public void store(Writer writer, String comments) throws IOException
Properties
테이블내의 프로퍼티 리스트 (키와 요소의 페어)를,load(Reader)
메소드의 사용에 적절한 형식에서 출력 문자 스트림에 기입합니다.
Properties
테이블 (존재하는 경우)의 디폴트 테이블에서의 프로퍼티은, 이 메소드에 따라서는 기입해지지 않습니다.
comments 인수가 null 가 아닌 경우는, ASCII 문자의 #
, comments 의 캐릭터 라인, 및 행 단락 문자가 최초로 출력 스트림에 기입해집니다. 이 때문에,comments
는 식별 코멘트로서 사용할 수 있습니다. 개행 ( 「\n」), 왕복대 리턴 ( 「\r」), 왕복대 리턴의 직후에 계속되는 개행, 중 한쪽이 코멘트내에 나타나면(자), 그것은,Writer
에 의해 생성된 1 개의 행 단락 문자로 옮겨놓을 수 있습니다. 그리고, 코멘트내의 다음의 문자가 문자 #
에서도 문자 !
도 아니었던 경우, 그 행 단락 문자의 후에 ASCII #
가 써내집니다.
다음에, ASCII 문자의 #
, 현재의 일시 (Date
의 toString
메소드에 의해 현재 시각이 생성되는 것과 같이), 및 Writer
에 의해 생성되는 행 단락으로부터 되는 코멘트행이 기입해집니다.
계속되어,Properties
테이블내의 모든 엔트리가 1 행씩 써내집니다. 각 엔트리의 키 캐릭터 라인, ASCII 문자의 =
, 관련한 요소 캐릭터 라인이 기입해집니다. 키의 경우, 모든 공백 문자는, 전에 \
문자를 붙여 기입해집니다. 요소의 경우, 매입 공백 문자에서도 뒷말 공백 문자도 아닌 선행 공백 문자는, 전에 \
를 붙여 기입해집니다. 키와 요소의 문자 #
,!
,=
, 및 :
은, 반드시 올바르고 로드 되도록(듯이), 전에 backslash를 붙여 기입해집니다.
엔트리가 기입해진 후에, 출력 스트림이 플래시 됩니다. 출력 스트림은 이 메소드로부터 복귀한 뒤도 연대로 입니다.
writer
- 출력 문자 스트림 라이터comments
- 프로퍼티 리스트의 기술
IOException
- 이 프로퍼티 리스트가 지정된 출력 스트림에 기입할 때에 IOException 가 throw 되었을 경우
ClassCastException
- 이 Properties
객체에 Strings
가 아닌 키 또는 값이 포함되는 경우
NullPointerException
- writer
가 null 의 경우public void store(OutputStream out, String comments) throws IOException
Properties
테이블내의 프로퍼티 리스트 (키와 요소의 페어)를,load(InputStream)
메소드를 사용해 Properties
테이블에 로드하는데 적절한 포맷으로 출력 스트림에 기입합니다.
Properties
테이블 (존재하는 경우)의 디폴트 테이블에서의 프로퍼티은, 이 메소드에 따라서는 기입해지지 않습니다.
이 메소드는, 코멘트 및 프로퍼티의 키와 값을,store(Writer)
로 규정된 것과 같은 형식에서 출력합니다. 다만, 다음의 점이 다릅니다.
\u
xxxx 로서 기입해진다.
\u0020
보다 작은 문자 및 \u007E
보다 큰 문자는, 적절한 16 진수 xxxx 를 사용해 \u
xxxx 로서 기입해진다.
엔트리가 기입해진 후에, 출력 스트림이 플래시 됩니다. 출력 스트림은 이 메소드로부터 복귀한 뒤도 연대로 입니다.
out
- 출력 스트림comments
- 프로퍼티 리스트의 기술
IOException
- 이 프로퍼티 리스트가 지정된 출력 스트림에 기입할 때에 IOException 가 throw 되었을 경우
ClassCastException
- 이 Properties
객체에 Strings
가 아닌 키 또는 값이 포함되는 경우
NullPointerException
- out
가 null 의 경우public void loadFromXML(InputStream in) throws IOException , InvalidPropertiesFormatException
XML 문서에는, 다음의 DOCTYPE 선언이 필요합니다.
<! DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">게다가 문서는 전술의 프로퍼티 DTD 를 채울 필요가 있습니다.
이 메소드가 돌아오면(자), 지정된 스트림이 닫혀집니다.
in
- XML 문서의 read원의 입력 스트림
IOException
- 지정된 입력 스트림로부터의 읽기시에 IOException 가 발생했을 경우
InvalidPropertiesFormatException
- 입력 스트림상의 데이터가, 요구된 문서형을 가지는 유효한 XML 문서가 되지 않는 경우
NullPointerException
- in
가 null 의 경우storeToXML(OutputStream, String, String)
public void storeToXML(OutputStream os, String comment) throws IOException
이 메소드를 props.storeToXML(os, comment) 의 형식에서 호출했을 경우,props.storeToXML(os, comment, "UTF-8"); 의 호출과 같은 결과를 얻을 수 있습니다.
os
- XML 문서의 발행처의 출력 스트림comment
- 프로퍼티 리스트의 설명. 코멘트가 필요없는 경우는 null
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
NullPointerException
- os
가 null 의 경우
ClassCastException
- 이 Properties
객체에 Strings
가 아닌 키 또는 값이 포함되는 경우loadFromXML(InputStream)
public void storeToXML(OutputStream os, String comment, String encoding) throws IOException
이 XML 문서에서는, 다음의 DOCTYPE 가 선언됩니다.
<! DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
지정된 코멘트가 null
의 경우, 문서에 코멘트는 포함되지 않습니다.
지정된 스트림은, 이 메소드가 복귀한 뒤도 연대로 입니다.
os
- XML 문서의 발행처의 출력 스트림comment
- 프로퍼티 리스트의 설명. 코멘트가 필요없는 경우는 null
IOException
- 지정된 출력 스트림에의 기입해 때에 IOException 가 발생했을 경우
NullPointerException
- os
가 null
의 경우, 또는 encoding
가 null
의 경우
ClassCastException
- 이 Properties
객체에 Strings
가 아닌 키 또는 값이 포함되는 경우loadFromXML(InputStream)
public String getProperty(String key)
null
가 돌려주어집니다.
key
- 프로퍼티 키
setProperty(java.lang.String, java.lang.String)
,
defaults
public String getProperty(String key, String defaultValue)
key
- 해시 테이블 키defaultValue
- 디폴트 값
setProperty(java.lang.String, java.lang.String)
,
defaults
public Enumeration <? > propertyNames()
ClassCastException
- 캐릭터 라인이 아닌 키가 이 프로퍼티 리스트내에 존재하는 경우Enumeration
,
defaults
,
stringPropertyNames()
public Set <String > stringPropertyNames()
반환된 세트는,Properties 객체에 관련지을 수 있고 있지 않습니다. 이 Properties 에의 변경은 세트에는 반영되지 않습니다. 그 역도 같습니다.
defaults
public void list(PrintStream out)
out
- 출력 스트림
ClassCastException
- 캐릭터 라인이 아닌 키가 이 프로퍼티 리스트내에 존재하는 경우public void list(PrintWriter out)
out
- 출력 스트림
ClassCastException
- 캐릭터 라인이 아닌 키가 이 프로퍼티 리스트내에 존재하는 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.