ゲーマーときどきエンジニア

基本ゲーム記事を書いて、ときどき考えを発信するエンジニアのブログです!

【Java】プロパティファイルについて解説します

こんにちは。たいら(@tairaengineer2)です。

この記事では、 Javaプロパティファイルについて解説します。

スポンサーリンク

 

前提条件

この記事では、eclipseのバージョンは

バージョン Eclipse4.7 Oxygen

を使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

プロパティファイルとは

プロパティファイルとは、キーがペアで格納されているファイルです。
書き方は↓のように書きます。

f:id:Tairax:20200212142340p:plain

プロパティファイルは、プログラムの設定値などを保存しておくファイルとして使用されることが多いです。
コンパイルなしでプログラムの動作を変更できるので、たとえばテスト環境や本番環境のデータベースの接続情報を記載しておくと、とても便利だと思います。

プロパティファイルの読み込み書き込みを行う場合、Propertiesクラスを使います。

public class Properties
extends Hashtable<Object,Object>

Propertiesクラスは、プロパティの永続セットを表します。
Propertiesを、ストリームへ保管したり、ストリームからロードしたりできます。
プロパティ・リストの各キー、およびそれに対応する値は文字列です。

Properties (Java Platform SE 8)から引用させて頂きました

Propertiesクラスを使う場合、以下のimportが必要です。

import java.util.Properties;

プロパティファイルを書くときのルールは以下の通りです。

  • 各行に「キー」と「値」をセットで書く
  • 「キー」と「値」はペアデリミタを使って区切る
    ペアデリミタで使って良いのは以下3つ
    • イコール(=)
    • コロン(:)
    • 半角スペース
  • 行の始めにシャープ(#)、またはエクスクラメーションマーク(!)が記載されている行はコメント行とみなされる
  • ファイルの拡張子は、【properties】である

Propertiesクラスでよく使うであろうメソッドが

  • loadメソッド
  • getPropertyメソッド

の2つです。

loadメソッドとは

loadメソッドはいくつかオーバーロードされていますが、要は与えられた引数の入力ストリームから読み込むメソッドです。

public void load(Reader reader)
throws IOException
プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。

Properties (Java Platform SE 8)から引用させて頂きました

getPropertyメソッドとは

getPropertyメソッドとは、引数で与えられたキーの値を取得するメソッドです。

public String getProperty(String key)
指定されたキーを持つプロパティを、プロパティ・リストから探します。

Properties (Java Platform SE 8)から引用させて頂きました

では、次の章で実際にプロパティファイルを作成し、読み込んでみます。

解説で使うJavaプログラムの概要

解説では、↓の2つのプログラムを使います。

  • Javaプログラム
  • プロパティファイル

プロパティファイルの中身を読み込み、表示させるだけのプログラムです。
プロパティファイルでは3種類のペアデリミタを使い、読み込めるか確認します。

Javaサンプルプログラム

package propertiesSample;
import java.io.FileReader;
import java.io.Reader;
import java.util.Properties;

public class PropertiesSample {

	/***
	 * プロパティファイルの読み込みサンプル
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			// プロパティファイルを読み込む
			Reader reader =
					new FileReader("C:\\test\\math.properties");
			Properties properties = new Properties();
			properties.load(reader);

			// プロパティファイルの値を読み込む
			double pi = Double.parseDouble(properties.getProperty("pi"));
			String test = properties.getProperty("test");
			int sample = Integer.parseInt(properties.getProperty("sample"));

			// 読み込んだ値を表示する
			System.out.println("pi:" + pi );
			System.out.println("test:" + test);
			System.out.println("sample:" + sample);
			reader.close();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

}

プロパティファイルの読み込みパスは、絶対パスで指定しています。
絶対パスについては、こちらの記事をご参考ください。

www.tairax.com

文字列double型に変換するのに、parseDoubleメソッドを使っています。
parseDoubleメソッドについては、こちらの記事をご参考ください。

www.tairax.com

プロパティファイル

#プロパティファイルのサンプル
pi = 3.14
test : test
sample 74

実行結果

f:id:Tairax:20200212145608p:plain

pi:3.14
test:test
sample:74

ちゃんと読み込みができていることが確認できました!

 

スポンサーリンク

 

まとめ:プロパティファイルを使ってみよう!

以上がプロパティファイルについての解説でした!

プロパティファイルは、設定ファイルとして使うととても便利なのでぜひ使ってみてください。

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

ほかにもJava解説記事を書いてます。
よければご参考ください。

【Java】BigDecimal型とdouble型と比較

【Java8】mapToObjメソッドを使ってFizzBuzz問題【ラムダ式】

 

今までブログで書いたJavaの解説記事のまとめは、こちらをご参考ください。

【Java】ブログで書いた文法記事のまとめ