JavaプログラミングTIPS


パッケージ空間内に例えばroot.imagesというパッケージを作って、その中に画像ファイルを置いたときにファイル空間によらず、パッケージ空間のみからファイルを取得する方法です。

具体的にはClass#getResource()もしくはClass#getResourceAsStream()メソッドを用います。

前者はリソースへのURLを後者はInputStreamを返します。時と場合によって使い分けて下さい。

このとき、引数の与え方は2種類、完全修飾名と、相対修飾名が選べます。

完全修飾名の場合は、ファイルをパッケージ名を全て含めて書きます。このとき、必ずルートに「/」をつけて、またパッケージの区切り文字を「/」にして下さい。例えば先ほどのパッケージにhogehoge.jpgがあったなら、

/root/images/hogehoge.jpg
になります。相対の場合は頭の「/」をとって、相対位置で書いてあげて下さい。

最後に具体的な使い方ですけど、二つのメソッドはstaticではありませんので、Classオブジェクトをゲットする必要があります。けど、ここであわてて新規に生成しないように。

ちゃんと、Object#getClass()を使いましょうね。

以上。

戻る