JavaA2Z

KAB-studio > プログラミング > JavaA2Z > プロパティファイルとは

プロパティファイル

日本語 属性書類
英語 property file
ふりがな ぷろぱてぃふぁいる
フリガナ プロパティファイル

解説

プログラムで使用する各種設定を記述したファイル
拡張子.propertiesのファイル。多くの場合、クラスファイル拡張子.classファイル)の置いてあるディレクトリ(通常はbinディレクトリ)に置かれる。
 
テキストファイルで、各に「キー=値」の形式で記述し、「キー」を元に「値」を取得することができる。仕組みはHashMapクラスと同じく、「辞書」構造となる。
プロパティファイルを直接指定する場合にはストリームクラスPropertiesクラスを用いて取得する。また、リソースバンドルを用いて取得することもできる。リソースバンドルの方がロケールの解決等をしてくれ取得が楽なため、リソースバンドルを用いて取得した方がいいだろう。
 
プロパティファイルにASCII文字以外の文字列を記述する場合には、Unicodeに変換する必要がある。
Unicodeへの変換は、J2SEに付属しているnative2asciiコマンドを使用する。
変換後のファイルは「プロパティファイル名_言語コード.properties」とする。「言語コード」はロケールで使用される言語コードであり、日本語であれば「ja」となる。この命名規則を使用することで、リソースバンドル使用時にロケールの自動解決がわれる。
 
プロパティファイルを使用することで、プログラムの設定を外部ファイル化することができる。
そうしない場合、設定はプログラム上にハードコーディングされることになり、設定の変更に再コンパイルが必要となる。プロパティファイルを用いることで、再コンパイルをせずに設定を変更でき、また設定をひとつにまとめることができるようになる。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

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

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // 適当な位置にApplicationResources.properties
            // というテキストファイルを作って、その中に次の文を記述してください。
            // sample.data=100

            // このファイル(リソースファイル)の絶対パスは以下の通りとします。
            String path = "D:/sample/bin/ApplicationResources.properties";

            // このリソースファイルを直接開きます。
            FileInputStream fis = new FileInputStream( path );
            Properties properties = new Properties();
            properties.load( fis );
            fis.close();

            // キーを元に値を取得します。
            // キーはApplicationResources.propertiesの中の「sample.data」、
            // 値はその=の右の「100」です。
            String value = (String)properties.get( "sample.data" );
            System.out.println( value );
            // 100

            // リソースファイルの中に日本語を入れる場合。
            // まずApplicationResources_ja.txtというテキストファイルを作って、
            // その中に次の文を記述してください。
            // sample.name=あいうえお

            // 次に、コマンドラインでカレントディレクトリを
            // ApplicationResources_ja.txtファイルがあるディレクトリに変えてから、
            // 以下のコマンドを実行してください。
            // native2ascii ApplicationResources_ja.txt ApplicationResources_ja.properties

            // そうすると、ApplicationResources_ja.propertiesというファイルが作られます。
            // jaは、ロケールの言語コードの「日本語」の印です。
            // この中には以下の文が入っています。
            // sample.name=\u3042\u3044\u3046\u3048\u304a

            // これは、先ほどの日本語をUnicodeに変換したものです。

            // このリソースファイルの絶対パスは以下の通りとします。
            String path_ja = "D:/sample/bin/ApplicationResources_ja.properties";

            // このリソースファイルを直接開きます。
            fis = new FileInputStream( path_ja );
            properties.load( fis );
            fis.close();

            // キーを元に値を取得します。
            // キーはApplicationResources.propertiesの中の「sample.name」、
            // 値はその=の右の「あいうえお」です。
            value = (String)properties.get( "sample.name" );
            System.out.println( value );
            // あいうえお

            // 実際には、リソースバンドルを使用して取得した方が楽です。
            // それについてはリソースバンドルの項目を参照。
        }
        catch( IOException e )
        {
            // ファイルがみつからない場合等はIOException例外が投げられます。
            e.printStackTrace();
        }
    }
}
// Sample.java
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // 適当な位置にApplicationResources.properties
            // というテキストファイルを作って、その中に次の文を記述してください。
            // sample.data=100

            // このファイル(リソースファイル)の絶対パスは以下の通りとします。
            String path = "D:/sample/bin/ApplicationResources.properties";

            // このリソースファイルを直接開きます。
            FileInputStream fis = new FileInputStream( path );
            Properties properties = new Properties();
            properties.load( fis );
            fis.close();

            // キーを元に値を取得します。
            // キーはApplicationResources.propertiesの中の「sample.data」、
            // 値はその=の右の「100」です。
            String value = (String)properties.get( "sample.data" );
            System.out.println( value );
            // 100

            // リソースファイルの中に日本語を入れる場合。
            // まずApplicationResources_ja.txtというテキストファイルを作って、
            // その中に次の文を記述してください。
            // sample.name=あいうえお

            // 次に、コマンドラインでカレントディレクトリを
            // ApplicationResources_ja.txtファイルがあるディレクトリに変えてから、
            // 以下のコマンドを実行してください。
            // native2ascii ApplicationResources_ja.txt ApplicationResources_ja.properties

            // そうすると、ApplicationResources_ja.propertiesというファイルが作られます。
            // jaは、ロケールの言語コードの「日本語」の印です。
            // この中には以下の文が入っています。
            // sample.name=\u3042\u3044\u3046\u3048\u304a

            // これは、先ほどの日本語をUnicodeに変換したものです。

            // このリソースファイルの絶対パスは以下の通りとします。
            String path_ja = "D:/sample/bin/ApplicationResources_ja.properties";

            // このリソースファイルを直接開きます。
            fis = new FileInputStream( path_ja );
            properties.load( fis );
            fis.close();

            // キーを元に値を取得します。
            // キーはApplicationResources.propertiesの中の「sample.name」、
            // 値はその=の右の「あいうえお」です。
            value = (String)properties.get( "sample.name" );
            System.out.println( value );
            // あいうえお

            // 実際には、リソースバンドルを使用して取得した方が楽です。
            // それについてはリソースバンドルの項目を参照。
        }
        catch( IOException e )
        {
            // ファイルがみつからない場合等はIOException例外が投げられます。
            e.printStackTrace();
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/10/22
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。