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

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

学习是最好的投资!

répondre à tous(3)
小葫芦

Exception de pointeur nul, vérifiez s'il y a une variable initialisée à vide ou non initialisée à la ligne 23 !

洪涛

1. Demo.class.getClassLoader().getResourceAsStream(), le fichier de configuration des ressources est placé dans le chemin CLASSPATH du projet, et le nom du fichier est donné directement lors du chargement

2. Ou utilisez la classe java.util.ResourceBundle pour charger les fichiers de configuration des ressources

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

L'exception du pointeur nul se produit car l'instruction ci-dessus pour lire le fichier de ressources renvoie un pointeur nul, c'est-à-dire que ne localise pas correctement le fichier de ressources (erreur de chemin) .

Il est recommandé que le sujet clarifie le chemin de positionnement de Demo.class.getResourceAsStream() et Thread.currentThread().getContextClassLoader().getResourceAsStream(). Si vous rencontrez à nouveau ce genre de problème, il sera facilement résolu.

Essayez d'afficher les trois instructions suivantes, la troisième instruction est similaire à Thread.currentThread().getContextClassLoader()

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

La première instruction obtient le chemin absolu de la classe Demo, et les deuxième et troisième instructions obtiennent le chemin absolu du projet CLASSPATH. Les deux instructions que vous avez écrites pour lire les ressources se trouvent sur le chemin suivant 项目CLASSPATH/project/db.properties Vérifiez si vos fichiers de ressources se trouvent à cet endroit.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal