java - 读取.properties配置文件 空指针异常
PHPz
PHPz 2017-04-18 09:16:43
0
3
1133

碰到一个properties的资源文件,读取报空指针,什么原因?
我使用下面2中方式读取,都是空指针。

Properties pro 
          = new Properties();
          pro.load(Demo.class.getResourceAsStream("/project/db.properties"));
          pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("project/db.properties"));

Exception:

Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Unknown Source)
    at java.util.Properties.load0(Unknown Source)
    at java.util.Properties.load(Unknown Source)
    at project.HashMap.Demo.main(Demo.java:23)
PHPz
PHPz

学习是最好的投资!

全員に返信(3)
小葫芦

Null ポインター例外。23 行目に空に初期化された変数、または初期化されていない変数があるかどうかを確認してください。

いいねを押す +0
洪涛

1. Demo.class.getClassLoader().getResourceAsStream()、リソース構成ファイルはプロジェクトの CLASSPATH パスに配置され、ファイル名はロード時に直接指定されます。

2. または、

クラスを使用してリソース構成ファイルをロードします。

いいねを押す +0
巴扎黑

リーリー

ヌル ポインター例外は、リソース ファイルを読み取る上記のステートメントがヌル ポインターを返すため、つまり、 がリソース ファイル (パス エラー) を正しく見つけられないために発生します。

被験者はDemo.class.getResourceAsStream()Thread.currentThread().getContextClassLoader().getResourceAsStream()の位置決め経路を明確にすることが推奨されます。この種の問題が再び発生した場合でも、簡単に解決できます。

次の 3 つのステートメントを出力してみます。3 番目のステートメントは Thread.currentThread().getContextClassLoader()

に似ています。 リーリー

最初のステートメントは Demo クラスの絶対パスを取得し、2 番目と 3 番目のステートメントはプロジェクト CLASSPATH の絶対パスを取得します。リソースを読み取るために作成した 2 つのステートメントは、次のパス 项目CLASSPATH/project/db.properties にあります。リソース ファイルがその場所にあるかどうかを確認してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート