關於properties空指針報錯的問題 java.lang.NullPointerException

關於properties空指針報錯的問題

java.lang.NullPointerException

這裏寫圖片描述


首先我們來說一下通過properties對象獲取資源文件中的數據簡單的幾個步驟

一.需要建一個資源文件JDBC.properties放在src文件夾中
文件中的鍵值對:
這裏寫圖片描述
文件放的位置:
這裏寫圖片描述
二.需要創建一個properties的對象,
三.通過獲取輸入流

1.通過FileInputStream獲取流
2.通過類加載器來獲取流
類名.class.getClassLoader().getResourceAsStream("文件路徑")
3.通過字節碼文件直接獲取流
類名.class.getResourceAsStream("文件路徑")
4.通過獲取當前的線程來獲取流{推薦使用這種方法,可以解決掉硬解碼問題}
Thread.currentThread().getResourceAsStream("文件路徑")

四.使用properties對象.load(流)來讀取文件
五.使用properties對象.getProperty(key)來獲取數據
代碼如下:
main方法{
ByFileInputStream();//第一種獲取流的方式
ByGetClassLoad();//第二種獲取流的方式
ByGetResourceAsStream();//第三種獲取流的方式
//第四種獲取流的方式
Properties pro = new Properties();
ClassLoader loder = Thread.currentThread().getContextClassLoader();
InputStream ips = loder.getResourceAsStream(“JDBC.properties”);
pro.load(ips);
System.out.println(pro.getProperty(“username”));
}

public static void ByGetResourceAsStream() throws IOException {
Properties pro = new Properties();
InputStream ras=TextProperties.class.getResourceAsStream(“../JDBC.properties”); pro.load(ras);
System.out.println(pro.getProperty(“username”));
}

public static void ByGetClassLoad() throws IOException {
Properties pro = new Properties();
ClassLoader classLoader =TextProperties.class.getClassLoader();
InputStream inputStream=classLoader.getResourceAsStream(“JDBC.properties”);
pro.load(inputStream);
System.out.println(pro.getProperty(“password”));
}
public static void ByFileInputStream() throws FileNotFoundException, IOException {
Properties pro = new Properties();
FileInputStream fis = new FileInputStream(“src/JDBC.properties”);//相對路徑
pro.load(fis);
System.out.println(pro.getProperty(“username”,”1”));//沒有找到username 則輸入1;
}
}
最後的輸入結果爲
這裏寫圖片描述
最後各位可以把JDBC放在不同的位置去試一下,空指針一般就是文件的路徑問題,把路徑弄明白了,在平時的項目中才能運用自如,好啦,今天就分享到這裏吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章