はじめに
プロパティとは、クラスの属性値設定値のことで、プログラムのフィールド変数やメソッドとは別のものになります。
javaには、プロパティファイル (拡張子は.properties )との入出力ができるクラスが用意されています。
なので、javaファイルからプロパティファイルを読み込んだり、プロパティファイルへ書き込んだりする事が可能です。
この章では、javaにおけるプロパティファイルの基本的な使い方を学んで行きましょう!
Step1: プロパティファイルの記述
例題
ファイル名は、test.properties として、下記を記述しましょう。
今回の例だと、 作成する場所は画像のようにしましょう!
postgreSQLインストール時にポート番号を 「5432」に設定している人は、connectionキーの値の一部分localhost:5434/〜では正しく動作しません。localhost:5432/〜と記述してください。
プロパティファイルの書き方はキー=値またはキー:値という形になります。
補足
例題では =と: どちらも使っていますが、どちらかで統一して記述しましょう!
Step2: ResourceBundle
ResourceBundleクラスを使用すると、簡単にプロパティファイルから値を読み込むことができます。
例題
getBundle()
getBundle ()メソッドでプロパティファイルを読み込みます。
このときプロパティファイル名だけ指定し、ファイルの拡張子はいりません。
今回の例ですと、getBundle("test") とすれば読み込みます。
getString()
getString()メソッドで、 プロパティファイルに記述されている値が取得することができます。
取得の仕方は、getstring() の引数には、プロパティファイルのキーを渡してあげます。
そうすると、そのキーに紐付いた値が取得できます。
今回の場合ですと、getString(pass) とすればpostgres が取得できます。
このようにして、 プロパティファイルの値をjavaの処理で扱うことができます。
基本的な構造は、 以上になります!
補足
プロパティファイルには、 コード上に持たせないような情報を記述します。
もっと言うと、プロパティファイルに記述しておけば運用・メンテナンスが簡単になるものをプロパティファイルに記述します。 複数のjavaソースで使いたい定数などが考えられます。
それはデータベースのIDやPassWordなどですね。
仮に、IDが変わったとしてもプロパティファイルの情報を変更するだけで参照している、すべてのjavaソースに反映されます。
プロパティファイルは、そのようにして活用されています。
Step3: 文字コード
先ほど作ったプロパティファイルに、日本語を追加してみよう。日本語であればなんでもよいです。
例題
例題
下記の文で、プロパティファイルを呼び出し日本語を出力してみよう。
すると下記のように、 暗号が出力されます。
これが俗に言う、文字化けです。
例:文字化けを改善するコード
文字化けの理由
なぜ? 文字化けが起きてしまうのか。。。
それは、文字コードの相違で発生します。
例えば、日本語しか知らないのに、急にイタリア語で話しかけられても対応できないですよね?
コンピューターにも読める文字、 つまり文字コードが決まっています。
文字コードとは、人が扱う文字をコンピュータが理解できるような文字に変換する時のフォーマットです。
そして日本語、英語、中国語・ とあるように、 文字コードにも200種類以上あります。
補足
今回の例で言うと、 ResourceBundle bundle = ResourceBundle.getBundle("test"); でファイルを読み込み、それを表現する時の文字コードが ISO/IEC 8859-1 というものです。
ISO/IEC 8859-1では日本語(漢字)を表現することができません。
ゆえに、文字化けを防ぐには UTF-8 等に変換する必要があるという訳です。
