Java Mania

Java Mania

プロパティファイル

プロパティファイルを扱うクラス。コンストラクタに引数として読み込むプロパティファイルを渡す。 ひとつのプロパティファイルしか扱わない場合はファイルのロード回数を減らすためにSingletonパターンを 利用したクラスを作成した方が良いと思う。
プロパティファイルとは、その名の通りプロパティが書き込まれているファイルのことで、拡張子は「.properties」 とする。以下にプロパティファイルの例を示す。

test.properties
-------------------------------------------
address=NewYork
name=Tom
-------------------------------------------

ちなみにプロパティファイルで日本語を扱うときは文字コードをnative2asciiで変換しなければいけない。 詳しくはこちらで。
※余談だが、ResourceBundleとの使い分けが良く分からないので、調べる必要がありそう。
HomePageTop▲

Source -Property.java-

package mania.util;

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

/**
 * プロパティファイルから値を読み込むクラス
 * 
 * @author JavaMania
 * @version 1.0
 */
public class Property {

	/** プロパティファイル名 */
	private File file = null;

	/** プロパティ */
	private static Properties properties = new Properties();

	/**
	 * コンストラクタ
* 第1引数で受け取ったプロパティファイルを読み込む。 * * @param file * プロパティファイル * @throws IOException */ public Property(File file) throws IOException { this.file = file; InputStream inputstream = new FileInputStream(file); properties.load(inputstream); } /** * 指定されたKEYの値をプロパティから取得する。 * * @param key * プロパティのKEY名 * @return KEYの値 */ public String get(final String key) { return properties.get(key).toString(); } /** * 指定されたKEYの値をプロパティに設定する。 * * @param key * プロパティのKEY名 * @param val * プロパティのKEYに結びつく値 */ public void set(final String key, final String val) { properties.put(key, val); } /** * 現在のプロパティの状態をプロパティファイルに保存する。
* 第1引数のコメントをプロパティファイルの上部に付与する。 * * @param comment * コメント * @throws IOException */ public void save(final String comment) throws IOException { OutputStream inputstream = new FileOutputStream(this.file); properties.store(inputstream, comment); } }
HomePageTop▲

Javadoc -Property.java-

メソッドの概要
 java.lang.String get(java.lang.String key)
          指定されたKEYの値をプロパティから取得する。
 void save(java.lang.String comment)
          現在のプロパティの状態をプロパティファイルに保存する。
 void set(java.lang.String key, java.lang.String val)
          指定されたKEYの値をプロパティに設定する。
HomePageTop▲

How To Use -使用方法-

Propertyクラスは下記のように使用する。 前提条件として「test.properties」をMainクラスと同じ階層に配置する。

下記のMainクラスを実行すると、test.propertiesが以下のように更新される。

実行前のtest.properties
-------------------------------------------
address=NewYork
name=Tom
-------------------------------------------

実行後のtest.properties
-------------------------------------------
#JavaMania Updated
#Wed Feb 15 16:15:20 JST 2006
address=NewYork
age=19
name=Tom
-------------------------------------------
import java.io.File;
import java.io.IOException;

import mania.util.Property;

public class Main
{

  public static void main(String[] args)
  {
    try
    {
      System.out.println("===実行結果===");
      
      // プロパティファイルの読み込み
      Property test = new Property(new File("test.properties"));

      System.out.println("名前:" + test.get("name"));
      System.out.println("住所:" + test.get("address"));
      
      // プロパティファイルの書き込み
      test.set("age", "19");
      test.save("JavaMania Updated");
    }
    catch(IOException e)
    {
      e.printStackTrace();
    }
  }
}

===実行結果===
名前:Tom
住所:NewYork

HomePageTop▲

Copyright (C) 2006, JavaMania. All Rights Reserved.