私はgetResourceAsStream()
によって混乱してしまいました。getResourceAsStream(file)はファイルをどこから検索しますか?
私のパッケージ構造は次のようになります。
そして私はfloodlightdefault.propertiesから読みたいです。ここに私のコードはnet.floodlightcontroller
パッケージに横たわって、次のとおりです。
package net.floodlightcontroller.core.module;
// ...
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("floodlightdefault.properties");
しかし、それはis == null
を取得し、失敗しました。だから私はどのくらい正確にgetResourceAsStream(file)
file
を検索するのだろうかと思っています。私はそれが特定のPATH
または特定のの注文を介して動作するのですか?
もしそうなら、getResourceAsStream()
が探している場所をどのように設定するのですか?
Thx!
リソースディレクトリを追加しましたかあなたのコードを実行しているクラスパスで?一般に、getResourceAsStreamの動作はClassLoaderの実装によって異なります。 –
一般的に言えば、それは「これ」が何を指しているかにも依存するでしょう。 – Radiodef
ヌル問題を修正するには、最初は2つのことがあります。まず、ディレクトリを '' resources/floodlightdefault.properties ''に変更するだけです。次に、メソッドはビルドディレクトリ内のリソースを探している可能性があり、表示されたディレクトリ構造はIDEプロジェクトのソースフォルダのようです。もちろん、プロジェクトにリソースを追加した場合、IDEはビルドディレクトリにファイルを自動的にコピーする必要があります。 Netbeansを使った簡単なテストでは、ビルドとsrcフォルダの両方からそれらを削除すると、私のリソースはnullになります。 – Radiodef