【Java】プロパティ・ファイル(.properties) の読み書き

概要

プロパティ・ファイル(.properties)

 [1] 拡張子は「.properties」のテキストファイル
 [2] プログラムで使用する各種設定を記述するために用いる
 [3]「キー=値」形式で記述

注意

 * ファイルを読んで、そのファイルを書き込んだ際の注意

 1) コメントアウト(#)がなくなってまう
 2) タブが「\t」に変換されてしまう(下記「例」を参照のこと)

【変換前】
logging_collector = on		# Enable capturing of stderr and csvlog

【変換後】
logging_collector=on\t\t\# Enable capturing of stderr and csvlog

サンプル

SampleProperties.java

* ファイル名を「conf.properties」とするプログラム
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class SampleProperties {

   public static void main(String[] args) {
      // Propertiesオブジェクトを生成
      Properties properties = new Properties();

      try {
         // ファイルを書き込む
         properties.setProperty("name", "Coco");
         properties.setProperty("age", "10");
         properties.setProperty("x01.name", "Bella");
         properties.setProperty("x01.age", "0.4");
         properties.setProperty("x01.name", "Deco");
         properties.setProperty("x01.age", "0.3");
         properties.setProperty("path", "C:\\eclipse");

         properties.store(new FileOutputStream("conf/conf.properties"), "Comments");

         // ファイルを読み込む
         properties.load(new FileInputStream("conf/conf.properties"));
         System.out.println("name = " + properties.getProperty("name"));
         System.out.println("age = " + properties.getProperty("age"));
         System.out.println("x01.name = "
               + properties.getProperty("x01.name"));
         System.out.println("x01.age = " + properties.getProperty("x01.age"));
         System.out.println("path = " + properties.getProperty("path"));
         System.out.println("Done");
      } catch (FileNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }
}

出力結果

* 同じキー値は上書きされる

コンソール画面

name = Coco
age = 10
x01.name = Deco
x01.age = 0.3
path = C:\eclipse
Done

conf.properties

#Comments
#Mon Jun 09 21:20:19 JST 2014
x01.name=Deco
age=10
name=Coco
path=C\:\\eclipse
x01.age=0.3


関連記事

Java/正規表現

http://blogs.yahoo.co.jp/dk521123/33605882.html

Excel マクロ ~ Javaのプロパティファイルを生成できるようにする ~

http://blogs.yahoo.co.jp/dk521123/36189581.html