Status Code 303 - See Other

サーバサイド、iOS・アンドロイドアプリ、インフラレベルの話まで幅広くやってます。情報の誤りや指摘・意見などは自由にどうぞ。

プロパティファイルの使用方法

概要

プログラミングでは、処理内容とデータをファイル的に分断したい場合がある。
例えば、プログラム中にデータを書き込んでいた場合。

  • データの修正漏れや記述ミスにより、特定箇所のみ動かなくなるバグの原因となり得る。
  • ステージング環境と本番環境を切り替えるとき、プログラムに手を入れる必要がある。
  • 開発してる人に重要な情報(パスワードなど)を公開してしまう。

このような事態を防ぐには、それらを別ファイルに用意し、
プログラムはそのデータを参照するような構造を用意する必要がある。
これらの実装方法について記述する。

事前準備

データを保存するファイルの作成
Javaでは、***.properties (***には名前) ファイルで作成する。
.propertitesファイルの文字コードは ISO 8859_1 なので、
日本語を使用する場合は、エディタをダウンロードした方が望ましい。

私が個人的に使ってるのは、プロパティ・エディター。
インストール手順は以下の通り。(2015/12/27現在)

f:id:kouki_hoshi:20151227064900p:plain
f:id:kouki_hoshi:20151227064913p:plain

以下はウィンドウの指示に従ってください。

なお、インストール後 .properties ファイルをプロパティ・エディターで開けない場合、
[ウィンドウ(W)]->[設定(P)] で .properties ファイルに対するエディタの関連付けを設定します。

f:id:kouki_hoshi:20151227065818p:plain

詳細説明

実装は至ってシンプルで、.propertiesファイルとそれを扱う専用クラスを1つ作成すればOK。
なお、.propertiesファイルはパスが通っているところに設置してください。

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

# メール題名のつもり ←コメント
subject = サンプル

# メール本文のつもり
body = ああああ

プロパティファイルを扱うクラス(Property.java)

import java.util.ResourceBundle;

public class Property {
	// conf.properties データ
	private ResourceBundle bundle = ResourceBundle.getBundle("conf");

	// キーに対応する値を取得する。
	public String getString(String key) {
		return bundle.getString(key);
	}

	// キーに対応する数値を取得する。
	public int getInt(String key) {
		return Integer.parseInt(bundle.getString(key));
	}
}

プロパティファイルから値を使う場合。

	Property property = new Property();

	System.out.println("題名 : " + property.getString("subject"));
	System.out.println("本文 : " + property.getString("body"));

出力結果

題名 : サンプル
本文 : ああああ