|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
メソッドが呼び出されると、その呼び出しは失敗します。
フィールドの概要 | |
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 をスローしません。JDK 1.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
メソッドを呼び出します。getProperties メソッドと対になります。プロパティのキーおよび値に文字列を使うことを義務付けます。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です。最終的な結果でコンマのあとに必ずスペースが表示されるように、各
¥
の前にスペースがあります。行の終わりを示す ¥
と、継続行の先行する空白は破棄され、他の文字に置換されません。
また、次の
cheesesは、キーが
cheeses
で、関連付けられている要素が空の文字列であることを表します。inStream
- 入力ストリームpublic void save(OutputStream out, String header)
store(OutputStream out, String header)
メソッドの使用が推奨されます。store(OutputStream out, String header)
メソッドを呼び出すことにより、スローされた IOExceptions を抑止します。out
- 出力ストリームheader
- プロパティリストの記述Properties
オブジェクトに String
ではないキーまたは値が格納されている場合public void store(OutputStream out, String header) throws IOException
Properties
テーブル内のプロパティリスト (キーと要素のペア) を、load
メソッドを使って Properties
テーブルにロードするのに適切なフォーマットで出力ストリームに書き込みます。
Properties
テーブル (存在する場合) のデフォルトテーブルからのプロパティは、このメソッドによっては書き込まれません。
header 引数が null でない場合は、ASCII 文字の #
、header の文字列、および行区切り文字が最初に出力ストリームに書き込まれます。このため、header
は識別コメントとして使うことができます。
次に、ASCII 文字の #
、現在の日時 (Date
の toString
メソッドによって現在時刻が生成されるのと同様)、および Writer によって生成される行区切りからなるコメント行が書き込まれます。
続いて、Properties
テーブル内のすべてのエントリが 1 行ずつ書き出されます。各エントリのキー文字列、ASCII 文字の =
、関連付けられている要素文字列が書き込まれます。要素文字列の各文字は、エスケープシーケンスとして描画する必要があるかどうか確認されます。ASCII 文字の ¥
、タブ、改行、および復帰はそれぞれ ¥¥
、¥t
、¥n
、および ¥r
として書き込まれます。
より小さい文字および ‾
より大きい文字は、対応する 16 進値 xxxx を使って ¥¥u
xxxx として書き込まれます。埋め込み空白文字でも後書き空白文字でもない空白文字は、前に ¥
を付けて書き込まれます。キーと値の文字 #
、!
、=
、および :
は、必ず正しくロードされるように、前にスラッシュを付けて書き込まれます。
エントリが書き込まれたあとで、出力ストリームがフラッシュされます。出力ストリームはこのメソッドから復帰したあとも開いたままです。
out
- 出力ストリームheader
- プロパティリストの記述Properties
オブジェクトに、String
ではないキーまたは値が格納されている場合public String getProperty(String key)
null
が返されます。key
- プロパティキーdefaults
public String getProperty(String key, String defaultValue)
key
- ハッシュテーブルキーdefaultValue
- デフォルト値defaults
public Enumeration propertyNames()
Enumeration
,
defaults
public void list(PrintStream out)
out
- 出力ストリームpublic void list(PrintWriter out)
out
- 出力ストリーム
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |