TextFileの内容からHashtable (Properties)を作成する。


Hashtable使えば、任意のキーと要素をもったテーブルを作成し、そのキーで検索できます。
そのテーブルに格納するデータは、外部から入手する場合がしばしば有ります。
外部からデータを入手するには、データの書式を決めて、これはkey、これは要素と分解しながら、
外部データの最後まで格納を繰り返す、といったプログラムが必要です。JavaではHashtableクラス
のサブクラスとしてPropertiesクラスが用意されていて、loadメソッドでその働きをしてくれます。

import java.io.*;
import java.util.*;

public class ExmPropert {
       public static void main(String[] args) {
           Properties  pp  = new Properties();
           try {
                FileInputStream fis  = new FileInputStream("testprop.txt");
                pp.load(fis);
                
           } catch (IOException ioe) {
                ioe.printStackTrace();
                System.exit(-1);
           }  
           Enumeration en  = pp.propertyNames();
           while(en.hasMoreElements()) {
                String propKey  = (String)en.nextElement();
                String propElm  = pp.getProperty(propKey);
                System.out.println(propKey + ": " + propElm);
           }
        }
}


<実行結果>

リストファイルの内容 実行結果のコンソール

color: blue
fontsize: 16
font: Dialog

Keyの値と要素の値を記述したテキストファイルをリストファイルと呼びます。
リストファイルの書式はテキストファイルで keyの値=要素の値 と記述します。
Propertiesクラスはキーも要素もString型でなければなりません。

loadメソッド>
リストファイルをロードし、Propertiesオブジェクトにセットします。
propertyNamesメソッド>
プロパティーキーの一覧が入手できます。入手できるキーの順番は元のリストファイルの順番とは無関係のようです。
getPropertyメソッド>
プロパティーキーに該当するプロパティー値が入手できます。