8

ClassLoader を使用して、Properties クラスのプロパティ ファイルをロードしたいと考えています。この説明のために、エラー処理を削除するために以下のコードを簡略化しました。

loader = this.getClass().getClassLoader();
in = loader.getResourceAsStream("theta.properties");
result = new Properties();
result.load(in);

このクラスと同じディレクトリに「theta.properties」というファイルがありますが、InputStream は常に null です。ファイルを間違った場所に置いていますか? 私はEclipseとそのセットを使用してクラスファイルをソースフォルダーにビルドしています-それは問題ではありません。

ClassLoader に、どのクラスパスが検索されているかを教えてもらうための JavaDoc が見つかりません。

4

3 に答える 3

10

を使用しgetClass().getClassloader()て、ルート パス ディレクトリから「theta.properties」を探します。getClass().getResourceAsStream()そのクラスに関連するリソースを取得するために使用するだけです。

于 2009-07-07T20:56:17.253 に答える
6

ファイルがクラスと同じディレクトリにある場合は、クラスのパッケージにディレクトリとしてプレフィックスを付ける必要があります。

したがって、パッケージが次の場合:

package com.foo.bar;

次に、コードは次のとおりです。

.getResourceAsStream("com/foo/bar/theta.properties");
于 2009-07-07T20:52:45.653 に答える
-1

ResourceBundle を使用できます

于 2009-09-16T15:17:04.343 に答える