
プログラマーの常識をJavaで身につける (9)
コードから情報を追い出せ!
プロパティファイルの常識
株式会社 NTTデータ ビジネスブレインズ
伊賀敏樹
2007/11/29
国際化にも対応、java.util.ResourceBundleクラス
Java言語からプロパティファイルを扱う2つ目のAPIは、java.util.ResourceBundleクラスです。このクラスは以前の記事の「プロパティファイルを使った国際化」でも紹介していますね。java.util.Propertiesクラスとは異なり、java.util.ResourceBundleクラスでは国際化対応をするための機能が備わっています。
java.util.ResourceBundleクラスを利用したプロパティファイルの読み込みは下記のようになります。悩ましいことに、先に紹介したjava.util.Propertiesクラスとはプログラミングの仕方が異なります。
![]() |
| 図6 java.util.ResourceBundleクラスによるプロパティファイルの読み込み |
| ResourceBundleSampleクラスのソースコード | |
|
■ 説明
|
ここで、ResourceBundleクラスがプロパティファイルの内容を読み込みます。「.properties」というファイル拡張子の部分が不要であるという点に注目してください。
|
この個所で、mykeyというキーに対応した値を取り出します。
■ プロパティファイルの配置場所
ResourceBundle.getBundleメソッドは、クラスパス上からプロパティファイルを読み込もうとします。そのため、sampleprop.propertiesファイルはクラスパス上に配置してください。
![]() |
| 図7 クラスパスが通っている場所にプロパティファイルを配置する例(2) |
ここでは、ソースフォルダに配置することによりクラスパス上に配置されたことと同じ状況を作り出しています。
■ 例外処理に注意!
さらに悩ましいことに、ResourceBundleクラスのメソッドのいくつかはjava.util.MissingResourceException例外を発生させます。この例外クラスは、java.lang.RuntimeExceptionを継承したクラスであるという点に注意を払う必要があります。RuntimeExceptionを継承した例外クラスは例外処理を思わず忘れてしまいがちだからです。
■ プロパティファイルが存在しない場合の例外
ここでも、参考までにいくつかの正常系ではない動作についてお伝えします。まず、プロパティファイルを読み込めなかった場合の例外には、下記のような例外が発生します。
|
クラスパス上にsampleprop.propertiesやsampleprop_ja.propertiesが見つからない場合に、この例外が発生します。
■ 存在しないキーを指定した場合の例外
また、存在しないキーによる読み込みを試みると、下記のような例外が発生します。
|
どのような場合に例外が発生するのかについても、Propertiesクラスとは異なる点が多いので注意してください。
ソースコードから「情報」を追い出そう!
今回は、プロパティファイルやそれを扱うプログラミングを紹介してきました。どういうものかお分かりいただけましたでしょうか。
冒頭で紹介したように、プロパティに関するプログラミングは外部ファイルと関係が出てくる技術であるため、初心者にとっては少し難易度の高いものとなります。クラスパスに関する話題が出てくると、さらに難しいものになってしまいますね。
一方で、ソースコードからそれら固有の設定情報やメッセージなどを追い出すことができるメリットはかなり大きいです。ぜひ、プロパティファイルを扱う技術を身に付けて、活用できるようになっていきましょう!
■ @IT関連記事
- Java TIPS 「Javaプログラムからプロパティファイルを参照する」
- Java TIPS 「Eclipseでプロパティファイルを編集する」
- Java TIPS 「Eclipseでストリングの外部化を行う」
- Java TIPS 「Java TIPS 「Eclipseでプロパティファイルを編集する」」
- Java TIPS 「リソースファイルで多国語対応のサイトを構築する」
- Java TIPS 「リソースファイルの内容が文字化けする場合には」
| Javaのクラスライブラリを攻略「ユーティリティ編」 [連載]基礎から学ぶサーブレット/JSP(8) 国際化機能や配列、正規表現のクラスを学び、実際的なアプリケーション作成のための基礎をつくります 「Java
Solution」フォーラム 2003/9/9 |
| Validatorプラグインによる妥当性検証の実現(前編) Strutsを使うWebアプリケーション構築術(5) Struts 1.1からの新機能であるValidatorプラグインを用いて、入力データの妥当性を検証する機能を実装してみよう 「Java
Solution」フォーラム 2004/5/28 |
||
| Index | ||||||||
|
||||||||
| プロフィール |
| 伊賀 敏樹(いが としき) ハンドル:いがぴょん 1968年生まれ。現在、NTTデータ ビジネスブレインズ 第一SI事業部 ソリューショングループ所属。システム開発の技術支援などに従事する。仕事におけるJava言語とのかかわりは1998年から。
現在 blanco Frameworkというオープンソースによるソースコード自動生成タイプの開発フレームワーク提供に取り組んでいる。
趣味はヴァイオリン演奏。アマチュアオーケストラで演奏することもある。ホームページ いがぴょんの日記ウェブページv2(1996年から続けているWeb日記) 所属団体 blanco Framework(コミッタ) 主な著書 「やさしく学ぶ基礎からのJDBC」 「Javaプログラミング[アプリケーション編]ステップアップラーニング」 |
| ご意見、ご感想はJava Solution 会議室へどうぞ |
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



1968年生まれ。現在、