使用 `ClassLoader.getResourceAsStream()` 讀取絕對路徑 `C:/Java/WprkSpace/JDBC/jdbc.properties` 導致 `InputStream` 為 `null`,隨後 `properties.load(in)` 拋出 `NullPointerException`。而教學視頻中使用相對路徑卻正常運行。
InputStream in = this.getClass().getClassLoader().getResourceAsStream("C:/Java/WprkSpace/JDBC/jdbc.properties");
properties.load(in); // 此處拋 NPE,in 為 null

ClassLoader 僅能加載 Classpath 下的資源(相對路徑)。絕對路徑 `C:/...` 不在 Classpath 中,`getResourceAsStream()` 返回 `null`。教學視頻中文件放在 `src/resources` 或包結構下,故相對路徑生效。
// 文件在 classpath 根目錄
InputStream in = this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
// 或在同包下
InputStream in = this.getClass().getResourceAsStream("jdbc.properties");
FileInputStream fis = new FileInputStream("C:/Java/WprkSpace/JDBC/jdbc.properties");
properties.load(fis);
fis.close();
CSDN 問答支持 PC 瀏覽器直接提問,無需手機。登錄後點擊頂部「提問」按鈕即可,支持懸賞 C 幣、代碼塊、圖片上傳等功能。