回答編集履歴
2
訂正
answer
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
ResourceBundleを使うのはロケールによる国際化を行う場合に用いる方法だと思います。Webサーバーで用いるならサーバーのデフォルトロケールによってgetBundleしても意味がなく、クライアントのロケールをなんらかの形で取得しそれを通じてプロパティーをロードするなどの配慮が必要ではないでしょうか?
|
2
2
|
|
3
3
|
国際化が必要ないのであれば質問者さんのコードにあるように単純にInputStreamからloadして問題ないと思います。問題はFileを生成する際に相対パスを指定している点ではないでしょうか?
|
4
|
-
`file = new File("test.properties")`としたあと、`file.getAbsolutePath()`をログに出力するなどして確認すればどのディレクトリーで実行されているか確認できると思いますが、本来は絶対パスでFileを生成すべきと思います。
|
4
|
+
`file = new File("test.properties")`としたあと、`file.getAbsolutePath()`をログに出力するなどして確認すればどのディレクトリーで実行されているか確認できると思いますが、本来は絶対パスでFileを生成すべきと思います。
|
5
|
+
|
6
|
+
---
|
7
|
+
訂正:
|
8
|
+
「本来は絶対パスでFileを生成すべき」と書きましたがそれはFileを用いる場合の話で、アプリケーションに紐づいたファイルなのでA-pZさんがおっしゃるようにJavaのソースファイルツリー上において`Class#getResourceAsStream`のような方法で得たInputStreamを使うのがよいと思いました。Fileは使わない方がよさそうです。
|
1
訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
ResourceBundleを使うのはロケールによる国際化を行う場合に用いる方法だと思います。Webサーバーで用いるならサーバーのデフォルトロケールによってgetBundleしても意味がなく、クライアントのロケールをなんらかの形で取得しそれを通じてプロパティーをロードするなどの配慮が必要ではないでしょうか?
|
2
2
|
|
3
3
|
国際化が必要ないのであれば質問者さんのコードにあるように単純にInputStreamからloadして問題ないと思います。問題はFileを生成する際に相対パスを指定している点ではないでしょうか?
|
4
|
-
`file = new File("test.properties")`としたあと、`file.getAbsolutePath()`をログに出力するなどして確認すればどのディレクトリーで実行されているか確認できると思いますが、本来は絶対パスでFileを
|
4
|
+
`file = new File("test.properties")`としたあと、`file.getAbsolutePath()`をログに出力するなどして確認すればどのディレクトリーで実行されているか確認できると思いますが、本来は絶対パスでFileを生成すべきと思います。
|