java.util.Propertiesで設定ファイル読み込み

Javaはなんでもかんでもクラスで、めんどうだなーと思うことが多々ありますが(ソートの比較関数もクラスで渡すとか)、
外部設定ファイルについてはjava.util.Properties使えば簡単な書式で書けます。


たとえばこんな感じ。

  • prop.conf
# sample property file
name=mikeda
addr=mikeda@xxx.jp


読込みはこう。loadでファイル読み込んでgetPropertyで値を取得します。

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Prop {
  public static void main(String[] args){
    String configFile = "prop.conf";
    Properties prop = new Properties();

    try {
      prop.load(new FileInputStream(configFile));
    } catch (IOException e) {
      e.printStackTrace();
      return;
    }

    String name = prop.getProperty("name");
    String addr = prop.getProperty("addr");
    System.out.println("name: " + name);
    System.out.println("addr: " + addr);
  }
}


実行

$ javac Prop.java 
$ java Prop
name: mikeda
addr: mikeda@xxx.jp


setPropertyとstoreを使えば書き込みもできます。