摘要:最近寫突然遇到配置文件加載的問題,正好有機會把關于路徑的問題整理一下。普通類中加載配置文件路徑以的方式來獲取配置文件路徑這樣就得到了一個文件的路徑,繼而我們可以把它轉化成流。
最近寫mybatis 突然遇到配置文件加載的問題, 正好有機會把關于java路徑的問題整理一下。在下面的情況中,可以獲得文件的路徑, 也可以吧文件轉成流以便使用。servlet 加載配置文件路徑
在servlet中有一個被稱之為servlet上下文的東西, 這個東西很有意思,簡單的講這就是一個web路徑的對象。例如localhost:8080/demo/index.jsp,以/demo為根路徑的servlet上下文路徑被發送給web應用程序,在這里servlet上下文路徑就是說這個根路徑,所有jsp和servlet應用都可以獲得并使用這個路徑, 同時,這個路徑也是最常用和最應該使用的一個路徑。既然這么好用就必然有獲得它的一個很好的辦法,
String path = this.getServletContext().getRealPath("xxx.file");
通過下面這樣, 你就成功的給文件讀入了文件流。
InputStream inputStream = new FileInputStream(path);
這里的getServletContext()就是獲取servlet的上下文, 而getRealPath("xxx.file");則 是為了獲取文件的真實路徑。通過這樣也就解決了Title中得獲取配置文件的問題, 然而你說了,我不是在servlet中用的, 我是在POJO類中使用的, 你這個servlet很特殊,我總不能每次去建一個servlet來加載配置文件吧, 那好, 我們就進入下一個話題。
以classloader的方式來獲取配置文件路徑
String path = ClassName.class.getClassLoader().getResource("xxx.file").getPath();
這樣就得到了一個文件的路徑,繼而我們可以把它轉化成流。
InputStream inputStream = new FileInputStream(path);
是不是很簡單呢。
用Class類加載資源文件
InputStream inputStream = ClassName.class.getResourceAsStream("/error.xml");
絕對定位,“/”開頭,此時即以classpath為根目錄
相對定位,不加“/”,則以調用getResourceAsStream類的包路徑作為根目錄(即該類所在包下獲取資源)
q前面兩種路徑不過是冰山一角, 不過還是可以對學習起到一定的作用, java中得獲取獲取資源路徑的范式數不勝數, 比如應用到框架時, 可以通過Resource類, 通過配置文件加載配置文件:classpath等等。但上面的兩種方式卻是java中最基本的兩種方式。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68234.html
摘要:中的路徑問題實例分析前言關于中得路徑問題,網上有很多獲取的答案,我這篇文章的目的在于說明獲取路徑時一些不常見的概念。在實際應用中使用的比較多的就是,當前路徑和配置文件的路徑其他文件的路徑。大氣層的高度是千米高等等。 Java中的路徑問題實例分析 前言:關于Java中得路徑問題,網上有很多獲取的答案,我這篇文章的目的在于說明獲取路徑時一些不常見的概念。在實際應用中使用的比較多的就是,當前...
摘要:,到現在為止一切都按部就班,執行上面的命令正常運行,讀取里面的文件,并輸出相應的屬性。那么,如果我們想改變配置文件的內容是否需要修改源文件里的然后重新打包成呢顯然這樣做太麻煩也不太合理,你可以在外面配置一個新的讓里的去讀取。 Java中經常要用到各種配置文件xxx.properties來控制程序的運行或進行國際化等但是也常常遇到配置文件放置路徑找不到的問題,這里以java.uitl.R...
摘要:文件的部分代碼中獲取文件的生成對象獲取文件的絕對路徑值使用絕對路徑當使用絕對路徑時,必須是以開頭,這代表了當前源代碼的根目錄。 獲取文件的絕對路徑,讀取該文件 一、文件目錄打印圖 下面的文件目錄圖,是項目中文件的位置信息;下面的例子是按照這個圖來演示的。 . |-- java | |-- ibard | | |-- demo1 | | | `-- DemoTes...
摘要:下載安裝配置環境變量以及驗證是否配置成功下面這個是針對的版下載首先要選定一個版本,我這里選擇,越新的版本一般會有越多的特性。有些編程語言比如會自動配置好環境變量。 首先明確自己使用的操作系統 在各個系統中的操作其實大同小異,都是以下三個步驟。下載、安裝、配置環境變量(以及驗證是否配置成功) 下面這個是針對Windows的 Windows版 下載JDK(java development ...
摘要:使用自建的類加載器主要是為了便于處理預編譯后的字節碼以及方便在模式下進行即時的熱更新。 注:本系列文章所用play版本為1.2.6 在上一篇中,我們分析了play的2種啟動方式,這一篇,我們來看看Play類的初始化過程 Play類 無論是Server還是ServletWrapper方式運行,在他們的入口中都會運行Play.init()來對Play類進行初始化。那在解析初始化之前,我們先...
閱讀 1763·2021-11-18 13:20
閱讀 1153·2021-10-11 10:59
閱讀 2991·2021-08-24 10:01
閱讀 3503·2019-08-29 14:21
閱讀 3355·2019-08-29 14:15
閱讀 3517·2019-08-26 12:23
閱讀 3346·2019-08-26 11:46
閱讀 3352·2019-08-26 11:35