首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 讀取 Properties 配置文件最佳實踐:從類路徑加載鍵值對

     編輯:Java 相關知識

標準項目結構

src/
 └─ config/
      └─ app.properties   # 內容:name=kaka\nage=28

核心代碼

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigLoader {
    public static void main(String[] args) {
        Properties props = new Properties();
        try (InputStream in = ConfigLoader.class.getResourceAsStream("/config/app.properties")) {
            if (in == null) throw new IllegalStateException("配置文件未找到");
            props.load(in);
        } catch (IOException e) {
            throw new RuntimeException("讀取配置失敗", e);
        }

        System.out.println("name: " + props.getProperty("name"));
        System.out.println("age:  " + props.getProperty("age"));
    }
}

關鍵點解析

  • getResourceAsStream("/config/app.properties"):絕對路徑以 / 開頭,從 classpath 根目錄查找
  • try-with-resources 自動關閉流,避免洩漏(Java 7+)
  • props.getProperty(key) 返回 null 若鍵不存在,可用 getProperty(key, defaultVal) 提供默認值
  • 編碼問題:Properties 默認 ISO-8859-1,含中文建議改用 load(new InputStreamReader(in, StandardCharsets.UTF_8))

進階用法

  • 多環境隔離:app-dev.properties / app-prod.properties,啟動時指定 -Dspring.profiles.active=dev
  • 類型安全綁定:Spring @ConfigurationProperties 或 @Value("${key}") 直接注入 Bean
  • 熱加載:結合 WatchService 監聽文件變更自動刷新

常見坑點避雷

  1. 路徑寫錯(漏 / 或大小寫不符)導致 NullPointerException
  2. 打包成 JAR 時未將 resources 目錄納入 classpath
  3. 屬性值尾部空格被誤讀入,建議 .trim()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved