jp.preserv.util
クラス DecodableProperties

java.lang.Object
  拡張java.util.Dictionary
      拡張java.util.Hashtable
          拡張java.util.Properties
              拡張jp.preserv.util.DecodableProperties
すべての実装インタフェース:
java.lang.Cloneable, java.util.Map, java.io.Serializable

public class DecodableProperties
extends java.util.Properties

デコード指定可能Propertiesクラスです。

説明: エンコードが指定可能なPropertiesクラスです。
デフォルトでは、MS932が使用されます.
staticにデフォルトエンコードを設定する事が可能で、クラスインスタンス個別にエンコードを 設定することも可能です.
デフォルトエンコードと、インスタンス個別エンコードでは、個別エンコードが優先されます.
保存時は、storeInSetEncodeを使用すると、指定エンコードで出力する事が出来ます。

著作権: Copyright (c) 2006

会社名: Mitsubishi Electric Corporation

導入されたバージョン:
6.0
作成者:
PreSerV Development Team
関連項目:
直列化された形式

フィールドの概要
 
クラス java.util.Properties から継承したフィールド
defaults
 
コンストラクタの概要
DecodableProperties()
           
 
メソッドの概要
protected  java.lang.String getApplyEncode()
          適用エンコードを返します。
static java.lang.String getDefaultEncode()
          デフォルトのエンコードを返します。
 java.lang.String getEncode()
          プロパティファイルの個別エンコードを返します。
 void load(java.io.InputStream inStream)
          入力ストリームからキーと要素が対になったプロパティリストを読み込みます。
static void setDefaultEncode(java.lang.String encode)
          デフォルトのエンコードを設定します。
 void setEncode(java.lang.String encode)
          プロパティファイルの個別エンコードを設定します。
 void storeInSetEncode(java.io.OutputStream out, java.lang.String header)
          Properties テーブル内のプロパティリスト (キーと要素の ペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで出力ストリームに書き込みます。
 
クラス java.util.Properties から継承したメソッド
getProperty, getProperty, list, list, propertyNames, save, setProperty, store
 
クラス 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
 

コンストラクタの詳細

DecodableProperties

public DecodableProperties()
メソッドの詳細

getDefaultEncode

public static java.lang.String getDefaultEncode()
デフォルトのエンコードを返します。

戻り値:
デフォルトエンコード

setDefaultEncode

public static void setDefaultEncode(java.lang.String encode)
デフォルトのエンコードを設定します。

パラメータ:
encode - デフォルトエンコード

getEncode

public java.lang.String getEncode()
プロパティファイルの個別エンコードを返します。

戻り値:
プロパティファイルの個別エンコード

setEncode

public void setEncode(java.lang.String encode)
プロパティファイルの個別エンコードを設定します。

パラメータ:
encode - プロパティファイルの個別エンコード

getApplyEncode

protected java.lang.String getApplyEncode()
適用エンコードを返します。
encodeが設定されていれば、encodeを適用し、そうでない場合はdefaultEncodeを返します。

戻り値:
適用エンコード

load

public void load(java.io.InputStream inStream)
          throws java.io.IOException
入力ストリームからキーと要素が対になったプロパティリストを読み込みます。 encodeが指定されている場合はそれを、それ以外の場合はdefaultEncodeを使用します。 各プロパティは、入力ストリームに行単位で登録されています。 各行は行区切り文字 (\n、\r、または \r\n) で終わります。 入力ストリームから読み込んだ行は、入力ストリームで ファイルの終わりに達するまで処理されます。 空白文字だけの行、または最初の非空白文字が ASCII 文字 # または ! である行は無視されます。 つまり、# または ! はコメント行を示します。 空白行またはコメント行以外のすべての行は、テーブルに追加されるプロパティを記述します。 ただし、行の終わりが \ の場合は、次の行があれば継続行として扱われます (下記を参照)。 キーは、最初の非空白文字から、最初の ASCII 文字 =、:、または空白文字の直前までの、 行内のすべての文字から構成されます。 キーの終わりを示す文字は、前に \ を付けることによりキーに含めることもできます。 キーの後ろの空白はすべてスキップされます。 キーの後ろの最初の非空白文字が = または : である場合は、これらのキーは無視され、 そのあとの空白文字もすべてスキップされます。 行内のそれ以外の文字はすべて、関連した要素文字列の一部となります。 要素文字列内では、ASCII エスケープシーケンス \t、\n、\r、\\、\"、\'、\ (円記号とスペース)、 および \ uxxxx は認識され、単独の文字に変換されます。 また、行の最後の文字が \ である場合は、次の行は現在の行の継続として扱われます。 その場合、\ と行区切り文字が破棄され、継続行の先頭に空白があればそれもすべて破棄され、 要素文字列の一部にはなりません。 たとえば、次の 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キーは、cheeses で、関連要素は空の文字列であることを指定しています。

パラメータ:
inStream - 入力ストリーム
例外:
java.io.IOException - 入力ストリームからの読み込み中にエラーが発生した場合

storeInSetEncode

public void storeInSetEncode(java.io.OutputStream out,
                             java.lang.String header)
                      throws java.io.IOException
Properties テーブル内のプロパティリスト (キーと要素の ペア) を、load メソッドを使って Properties テーブルにロードするのに適切なフォーマットで出力ストリームに書き込みます。 ストリームは、defaultEncode,encodeが指定されている場合はそのエンコードを優先して使用して書き込まれます。

Properties テーブル (存在する場合) のデフォルトテーブルから のプロパティは、このメソッドによっては書き込まれません。

header 引数が null でない場合は、ASCII 文字の #、header の文字列、および行区切り文字が最初に出力ストリームに書き込まれます。 このため、header は識別コメントとして使うことができます。

次に、ASCII 文字の #、現在の日時 (DatetoString メソッドによって現在時刻が生成されるのと 同様)、および Writer によって生成される行区切りからなるコメント行が 書き込まれます。

続いて、Properties テーブル内のすべてのエントリが 1 行ずつ書き出されます。各エントリのキー文字列、ASCII 文字の =、 関連した要素文字列が書き込まれます。要素文字列の各文字は、エスケープシー ケンスとして描画する必要があるかどうか確認されます。ASCII 文字の \、 タブ、改行、および復帰はそれぞれ \\\t\n、および \r として書き込まれます。\u0020 より小さい文字および \u007E より大きい文字は、 指定エンコードでそのまま書き込まれます。 埋め込み空白文字でも後書き空白文字でもない先行空白文字は、 前に \ を付けて書き込まれます。キーと値の文字 #!=、および : は、必ず正しくロードされるように、前にスラッシュを付けて書き込まれます。

エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。

パラメータ:
out - 出力ストリーム
header - プロパティリストの記述
例外:
java.io.IOException - このプロパティリストを指定した出力ストリームに 書き込んで、IOException がスローされた場合
java.lang.ClassCastException - この Properties オブジェクトに、 String ではないキーまたは値が格納されている場合
java.lang.NullPointerException - out が null の場合