碰到一个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)
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 chargement2. Ou utilisez la classe
;java.util.ResourceBundle
pour charger les fichiers de configuration des ressourcesL'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()
etThread.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()
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.