讀取配置文件Properties的一種方案(Thread.currentThread().getContextClassLoader() .getResourceAsStream())

Java路徑

Java中使用的路徑,分為兩種:絕對路徑和相對路徑。

具體而言,又分為四種:

一 URI形式的絕對資源路徑

如:
file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b

  • URL是URI的特例。
  • URL可以打開資源,而URI則不行。
  • URL的前綴/協(xié)議,必須是Java熟悉的。
  • URL和URI對象可以互相轉換,使用各自的toURI(),toURL()方法即可!

二 本地系統(tǒng)的絕對路徑

如:
D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b
Java.io包中的類,需要使用這種形式的參數(shù)。
但是,它們一般也提供了URI類型的參數(shù),而URI類型的參數(shù),接受的是URI樣式的String。因此,通過URI轉換,還是可以把URI樣式的絕對路徑用在java.io包中的類中。

三 相對于classpath的相對路徑

如:
相對于file:/D:/java/eclipse32/workspace/jbpmtest3/bin/這個路徑的相對路徑。
其中,bin是本項目的classpath。所有的Java源文件編譯后的.class文件復制到這個目錄中。

四 相對于當前用戶目錄的相對路徑

就是相對于System.getProperty("user.dir")返回的路徑。

對于一般項目,這是項目的根路徑。
對于JavaEE服務器,這可能是服務器的某個路徑。
這個并沒有統(tǒng)一的規(guī)范!所以,絕對不要使用"相對于當前用戶目錄的相對路徑"。

然而:
默認情況下,java.io 包中的類總是根據(jù)當前用戶目錄來分析相對路徑名。此目錄由系統(tǒng)屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄。
這就是說,在使用java.io包中的類時,最好不要使用相對路徑。否則,雖然在J2SE應用程序中可能還算正常,但是到了J2EE程序中,一定會出問題!而且這個路徑,在不同的服務器中都是不同的!

下面是我在學習過程中比較好的一種讀取classpath文件的一個好方法:

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

import org.omg.CORBA.portable.InputStream;

public class D {
    private static Properties props = new Properties();

    public static String getUrl(String fileName, String key) {
        try {
            // 得到當前的classpath的絕對路徑的URI表示法。
            java.io.InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
            // 讀取Properties文件
            props.load(stream);
            return props.getProperty(key);
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,290評論 6 342
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,391評論 0 17
  • 踮起腳尖, 更能接近陽光。 易小峰篇 謝小藝給我打電話的時候,我正被困在四中房山校區(qū)長陽鎮(zhèn)長澤南街。大雨已經(jīng)沒過了...
    月德閱讀 630評論 7 4
  • 窗外新栽不久的樹,在冬日的清晨站得倔強而孤獨。空曠的荒蕪里,不顯突兀,反而像極了每個生命最無畏的堅持。你看到的站立...
    佳禾晏晏閱讀 425評論 0 2

友情鏈接更多精彩內容