|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.Dictionary | +--java.util.Hashtable | +--java.util.Properties
Properties
クラスは、不変のプロパティセットを表します。Properties
をストリームに保管したり、ストリームからロードしたりすることができます。プロパティリストの各キー、およびそれに対応する値は文字列です。
プロパティリストには、その「デフォルト値」として別のプロパティリストを持つことができます。元のプロパティリストでプロパティキーが見つからないと、この 2 番目のプロパティリストが検索されます。
Properties
は Hashtable
を継承するので、Properties
オブジェクトに対して put
メソッドおよび putAll
メソッドを適用できます。しかし、これらのメソッドを使用することは推奨されません。これらのメソッドを使うと、呼び出し側にキーまたは値が String
ではないエントリを挿入させるからです。setProperty
メソッドを代わりに使用してください。String
以外のキーまたは値を格納する「妥協的」な Properties
オブジェクトで store
メソッドまたは save
メソッドが呼び出されると、その呼び出しは失敗します。
プロパティをストリームに保存するとき、またはストリームからロードするときに、ISO 8859-1 文字エンコーディングが使用されます。このエンコーディングに直接表示できない文字には、Unicode escapes が使用されます。ただし、エスケープシーケンスでは 1 文字の「u」だけが使用可能です。他の文字エンコーディングとプロパティファイルを変換する場合、native2ascii ツールを使用できます。
クラス java.util.Map から継承した内部クラス |
Map.Entry |
フィールドの概要 | |
protected Properties |
defaults
プロパティリストにないキーのデフォルト値を持つプロパティリストです。 |
コンストラクタの概要 | |
Properties()
デフォルト値を持たない空のプロパティリストを作成します。 |
|
Properties(Properties defaults)
指定されたデフォルト値を持つ空のプロパティリストを作成します。 |
メソッドの概要 | |
String |
getProperty(String key)
指定されたキーを持つプロパティを、プロパティリストから探します。 |
String |
getProperty(String key,
String defaultValue)
指定されたキーを持つプロパティを、プロパティリストから探します。 |
void |
list(PrintStream out)
指定された出力ストリームに、プロパティリストを出力します。 |
void |
list(PrintWriter out)
指定された出力ストリームに、プロパティリストを出力します。 |
void |
load(InputStream inStream)
入力ストリームからキーと要素が対になったプロパティリストを読み込みます。 |
Enumeration |
propertyNames()
プロパティリストにあるすべてのキーのリストを返します。 |
void |
save(OutputStream out,
String header)
推奨されていません。 このメソッドは、プロパティリストの保存中に入出力エラーが発生しても IOException をスローしません。Java 2 プラットフォーム v1.2 以降では、プロパティリストの保存方法としては、 store(OutputStream out, String header) メソッドの使用が推奨されます。 |
Object |
setProperty(String key,
String value)
ハッシュテーブルの put メソッドを呼び出します。 |
void |
store(OutputStream out,
String header)
Properties テーブル内のプロパティリスト (キーと要素のペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで出力ストリームに書き込みます。 |
クラス 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 メソッドと対になります。プロパティのキーおよび値に文字列を使うことを義務付けます。key
- プロパティリストに配置されるキーvalue
- key に対応する値getProperty(java.lang.String)
public void load(InputStream inStream) throws IOException
各プロパティは、入力ストリームに行単位で登録されています。各行は行区切り文字 (\n
、\r
、または \r\n
) で終わります。入力ストリームから読み込んだ行は、入力ストリームでファイルの終わりに達するまで処理されます。
空白文字だけの行、または最初の非空白文字が ASCII 文字 #
または !
である行は無視されます。つまり、#
または !
はコメント行を示します。
空白行またはコメント行以外のすべての行は、テーブルに追加されるプロパティを記述します。ただし、行の終わりが \ の場合は、次の行があれば継続行として扱われます (下記を参照)。キーは、最初の非空白文字から、最初の ASCII 文字 =
、:
、または空白文字の直前までの、行内のすべての文字から構成されます。キーの終わりを示す文字は、前に \ を付けることによりキーに含めることもできます。キーの後ろの空白はすべてスキップされます。キーの後ろの最初の非空白文字が =
または :
である場合は、これらのキーは無視され、そのあとの空白文字もすべてスキップされます。行内のそれ以外の文字はすべて、関連した要素文字列の一部となります。要素文字列内では、ASCII エスケープシーケンス \t
、\n
、\r
、\\
、\"
、\'
、\
(円記号とスペース)、および \u
xxxx は認識され、単独の文字に変換されます。また、行の最後の文字が \
である場合は、次の行は現在の行の継続として扱われます。その場合、\
と行区切り文字が破棄され、継続行の先頭に空白があればそれもすべて破棄され、要素文字列の一部にはなりません。
たとえば、次の 4 行はそれぞれキー 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
で、関連した要素が空の文字列であることを表します。
cheeses
inStream
- 入力ストリームIOException
- 入力ストリームからの読み込み中にエラーが発生した場合public void save(OutputStream out, String header)
store(OutputStream out, String header)
メソッドの使用が推奨されます。
store(OutputStream out, String header)
メソッドを呼び出すことにより、スローされた IOExceptions を抑止します。out
- 出力ストリームheader
- プロパティリストの記述ClassCastException
- この Properties
オブジェクトに、String
ではないキーまたは値が格納されている場合public void store(OutputStream out, String header) throws IOException
Properties
テーブル内のプロパティリスト (キーと要素のペア) を、load
メソッドを使って Properties
テーブルにロードするのに適切なフォーマットで出力ストリームに書き込みます。ストリームは、ISO 8859-1 文字エンコーディングを使用して書き込まれます。
Properties
テーブル (存在する場合) のデフォルトテーブルからのプロパティは、このメソッドによっては書き込まれません。
header 引数が null でない場合は、ASCII 文字の #
、header の文字列、および行区切り文字が最初に出力ストリームに書き込まれます。このため、header
は識別コメントとして使うことができます。
次に、ASCII 文字の #
、現在の日時 (Date
の toString
メソッドによって現在時刻が生成されるのと同様)、および Writer によって生成される行区切りからなるコメント行が書き込まれます。
続いて、Properties
テーブル内のすべてのエントリが 1 行ずつ書き出されます。各エントリのキー文字列、ASCII 文字の =
、関連した要素文字列が書き込まれます。要素文字列の各文字は、エスケープシーケンスとして描画する必要があるかどうか確認されます。ASCII 文字の \
、タブ、改行、および復帰はそれぞれ \\
、\t
、\n
、および \r
として書き込まれます。\u0020
より小さい文字および \u007E
より大きい文字は、対応する 16 進値 xxxx を使って \u
xxxx として書き込まれます。埋め込み空白文字でも後書き空白文字でもない先行空白文字は、前に \
を付けて書き込まれます。キーと値の文字 #
、!
、=
、および :
は、必ず正しくロードされるように、前にスラッシュを付けて書き込まれます。
エントリが書き込まれたあとで、出力ストリームがフラッシュされます。出力ストリームはこのメソッドから復帰したあとも開いたままです。
out
- 出力ストリームheader
- プロパティリストの記述IOException
- このプロパティリストを指定した出力ストリームに書き込んで、IOException がスローされた場合ClassCastException
- この Properties
オブジェクトに、String
ではないキーまたは値が格納されている場合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()
Enumeration
,
defaults
public void list(PrintStream out)
out
- 出力ストリームpublic void list(PrintWriter out)
out
- 出力ストリーム
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.