appendix> util> Properties TOPUPPREVNEXT

java.util.Properties

【主な機能】

プロパティリストの参照、作成、変更を行います。
属性(キー)と属性値の組を設定したり、XML形式で書き出したりできます。 システムプロパティなどはこのクラスで表現されます。

【継承】

    java.lang.Object
          └ java.util.Dictionary
                └ java.util.Hashtable
                      └ java.util.Properties

【コンストラクタ】

コンストラクタ概要
Properties ( ) 空のプロパティリストを作成します。
Properties ( Properties defaults ) defaults をデフォルトとしたプロパティリストを生成します。

【主なメソッド】

メソッド機能
String getProperty ( String key ) 属性 key の属性値。 プロパティリストになければ、デフォルトのプロパティリストを、 なけれはさらにそのデフォルトをという順に探します。 見つからなければ null が返されます。
String getProperty ( String key , String def ) 属性 key の属性値。 プロパティリストになければ、デフォルトのプロパティリストを、 なけれはさらにそのデフォルトをという順に探します。 見つからなければ def が返されます。
void list ( PrintStream out )
void list ( PrintWriter out )
ストリーム out にプロパティリストを出力します。 デバッグ用です。
void load ( InputStream in ) ストリーム in から、 save メソッドで作成されたファイルを読み込みます。
入出力エラーがあると IOException がスローされます。
void loadFromXML ( InputStream in ) [5.0]
ストリーム in からXMLで記述されたプロパティリストを読み込みます。
XMLドキュメントには次の DOCTYPE 宣言が必要です。
 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
この URL をアクセスするわけではありませんが、 ドキュメントが下記の 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>

読み込んだ後もストリーム in は開いたままです。 入出力エラーが発生すると IOException がスローされます。 ドキュメントが DTD に整合していない場合は InvalidPropertiesFormatException がスローされます。

Enumeration<?> propertyNames ( ) デフォルトのプロパティリストもふくめた全ての属性が返されます。
void setProperty ( String key , String value ) HashTableput( key , value ) が実行されます。
void store ( OutputStream out , String com) load メソッドで読み込めるようなファイルを書き出します。 デフォルトのプロパティリストからは書き出されません。
入出力エラーが発生すると IOException がスローされます。 書き出しが終わるとストリームはフラッシュされますが、クローズはされません。
void storeToXML ( OutputStream out , String com ) [5.0]
メソッド storeToXML( out , com , "UTF-8" ) と同じです。
void storeToXML (
OutputStream out ,
String com ,
String encoding )
[5.0]
このプロパティリストの全属性をエンコーディング encoding でストリーム out に書き出します。 com が null 出ない場合、コメントとして書き出されます。
書き出された後もストリームは開いたままです。 入出力エラーが発生すると IOException がスローされます。

[5.0] は J2SE 5.0 で提供されたメソッド

【例1】

システムプロパティを獲得し、表示します。

プログラム PropertiesDemo1.java

実行例

PropertiesDemo1-1.gif

【例2】

xmlファイルを読み、プロパティリストを JTable で表示します(5.0 以降)

プログラム PropertiesDemo2T.java

テストデータ test2.xml

実行例

PropertiesDemo2T-1.gif

【例3】

xmlファイルにプロパティリストを出力してみましょう。(5.0 以降)

プログラム PropertiesDemo3T.java

作成されたファイル out3.xml

PropertiesDemo3T-1.gif

【例4】

例3の文字列を漢字にしてみました。(5.0 以降)

プログラム PropertiesDemo4T.java

作成されたファイル out4.xml

PropertiesDemo4T-1.gif

【例5】

以上をまとめ、プロパティリストを表形式で編集するエディタにしました。(5.0 以降)
機能一覧
ファイルの読み込み
XML形式のプロパティリストを読み込み表形式で表示する
ファイルへの書き出し
表形式のプロパティリストをXML形式でファイルに書き出す
ファイルからの追加
表示中のプロパティリストにファイルから追加する
セルの編集
表形式のプロパティリストで、属性や属性値の変更をする
プロパティの追加と削除
行単位に追加、削除する
システムプロパティの表示
現在の(JVMの)システムプロパティを表示する

プログラム PropEd.java


更新日:2006-01-09