package lecture.fileio;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Properties;
import java.util.Set;

import jp.avaj.lib.debug.L;

/**
 *  プロパティ処理のサンプルプログラム Java
 */
public class PropertyTest {
  public static void main(String[] args) {
    // プロパティの名称
    final String propName = "sample-prop";
    // プロパティを保存するファイル名
    final String propFileName = "./propList";
    // プロパティの一覧
    Properties props = null;
    //
    props = new Properties();
    // プロパティを取得する
    try {
      // プロパティが保存されているファイルをオープン
      FileReader fw = new FileReader(propFileName);
      BufferedReader br = new BufferedReader(fw);
      // プロパティの一覧を読み込む
      props.load(br);
      // プロパティを取得して表示する
      L.p(props.getProperty(propName));
      // プロパティの一覧
      Set<String> set = props.stringPropertyNames();
      for (String str : set) {
        L.p("str="+str);
      }
    }
    catch(Exception ex) {
      // 最初はプロパティファイルが存在しないのでエラーになる
      L.p("Property not found");
      // 例外自体は無視する.
    }
    // プロパティを設定して保存する
    try {
      // プロパティに値を設定する
      props.setProperty(propName,"zzzz");
      // プロパティをファイルに保存する
      FileWriter fw = new FileWriter(propFileName);
      BufferedWriter bw = new BufferedWriter(fw);
      props.store(bw, "テスト用");
    }
    catch(Exception ex) {
      L.p("cannot write property");
    }
  }
}
//---------------------------------------------------
//・目次 - ファイル入出力
//  http://blogs.yahoo.co.jp/artery2020/40607767.html
//・目次 - Java入門
//  http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//  http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//  http://blogs.yahoo.co.jp/artery2020/39657784.html
//・目次 - 単なる雑談
//  http://blogs.yahoo.co.jp/artery2020/40599964.html
//---------------------------------------------------