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

碰到一个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

学习是最好的投资!

membalas semua(3)
小葫芦

Pengecualian penuding nol, semak sama ada terdapat pembolehubah yang dimulakan kepada kosong atau tidak dimulakan dalam baris 23!

洪涛

1. Demo.class.getClassLoader().getResourceAsStream(), fail konfigurasi sumber diletakkan dalam laluan CLASSPATH projek, dan nama fail diberikan terus semasa memuatkan

2. Atau gunakan kelas java.util.ResourceBundle untuk memuatkan fail konfigurasi sumber;

巴扎黑
Demo.class.getResourceAsStream("/project/db.properties")
Thread.currentThread().getContextClassLoader().getResourceAsStream("project/db.properties")

Pengecualian penuding nol berlaku kerana pernyataan di atas untuk membaca fail sumber mengembalikan penuding nol, iaitu tidak mengesan fail sumber dengan betul (ralat laluan) .

Adalah disyorkan agar subjek menjelaskan laluan kedudukan Demo.class.getResourceAsStream() dan Thread.currentThread().getContextClassLoader().getResourceAsStream(). Jika anda menghadapi masalah seperti ini lagi, ia akan diselesaikan dengan mudah.

Cuba keluarkan tiga pernyataan berikut, pernyataan ketiga adalah serupa dengan Thread.currentThread().getContextClassLoader()

Demo.class.getResource("").getPath()
Demo.class.getResource("/").getPath()
Demo.class.getClassLoader().getResource("").getPath();

Pernyataan pertama mendapat laluan mutlak kelas Demo, dan pernyataan kedua dan ketiga mendapat laluan mutlak projek CLASSPATH. Dua pernyataan yang anda tulis untuk membaca sumber terletak di laluan berikut 项目CLASSPATH/project/db.properties Semak untuk melihat sama ada fail sumber anda berada di tempat itu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan