Java中getResourceAsStream的用法,讀取jar裡面的檔案
[url]http://riddickbryant.iteye.com/blog/436693[/url]
首先,Java中的getResourceAsStream有以下幾種:
1. Class.getResourceAsStream(String path) : path 不以’/'開頭時預設是從此類所在的包下取資源,以’/'開頭則是從ClassPath根下獲取。其只是通過path構造一個絕對路徑,最終還是由ClassLoader獲取資源。
2. Class.getClassLoader.getResourceAsStream(String path) :預設則是從ClassPath根下獲取,path不能以’/'開頭,最終是由ClassLoader獲取資源。
3. ServletContext. getResourceAsStream(String path):預設從WebAPP根目錄下取資源,Tomcat下path是否以’/'開頭無所謂,當然這和具體的容器實現有關。
4. Jsp下的application內建物件就是上面的ServletContext的一種實現。
其次,getResourceAsStream 用法大致有以下幾種:
第一: 要載入的檔案和.class檔案在同一目錄下,例如:com.x.y 下有類me.class ,同時有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目錄的子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目錄下,也不在子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
總結一下,可能只是兩種寫法
第一:前面有 “ / ”
“ / ”代表了工程的根目錄,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面沒有 “ / ”
代表當前類的目錄
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
最後,自己的理解:
getResourceAsStream讀取的檔案路徑只侷限與工程的原始檔夾中,包括在工程src根目錄下,以及類包裡面任何位置,但是如果配置檔案路徑是在除了原始檔夾之外的其他資料夾中時,該方法是用不了的。
首先,Java中的getResourceAsStream有以下幾種:
1. Class.getResourceAsStream(String path) : path 不以’/'開頭時預設是從此類所在的包下取資源,以’/'開頭則是從ClassPath根下獲取。其只是通過path構造一個絕對路徑,最終還是由ClassLoader獲取資源。
2. Class.getClassLoader.getResourceAsStream(String path) :預設則是從ClassPath根下獲取,path不能以’/'開頭,最終是由ClassLoader獲取資源。
3. ServletContext. getResourceAsStream(String path):預設從WebAPP根目錄下取資源,Tomcat下path是否以’/'開頭無所謂,當然這和具體的容器實現有關。
4. Jsp下的application內建物件就是上面的ServletContext的一種實現。
其次,getResourceAsStream 用法大致有以下幾種:
第一: 要載入的檔案和.class檔案在同一目錄下,例如:com.x.y 下有類me.class ,同時有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目錄的子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目錄下,也不在子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資原始檔myfile.xml
那麼,應該有如下程式碼:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
總結一下,可能只是兩種寫法
第一:前面有 “ / ”
“ / ”代表了工程的根目錄,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面沒有 “ / ”
代表當前類的目錄
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
最後,自己的理解:
getResourceAsStream讀取的檔案路徑只侷限與工程的原始檔夾中,包括在工程src根目錄下,以及類包裡面任何位置,但是如果配置檔案路徑是在除了原始檔夾之外的其他資料夾中時,該方法是用不了的。
相關文章
- linux替換jar裡面的class檔案LinuxJAR
- java中讀取配置檔案Java
- java中讀取.properties配置檔案Java
- java中的JAR檔案淺析JavaJAR
- Java 讀取檔案Java
- 直接修改別人jar包裡面的class檔案 工具:jclasslibJAR
- Java中的獲取檔案的物理絕對路徑,和讀取檔案Java
- Java中獲取JAR檔案中資源路徑的三種方法JavaJAR
- JAVA 讀取xml檔案JavaXML
- java讀取properties檔案Java
- Springboot 獲取jar包中的檔案Spring BootJAR
- JN專案-如何修改jar裡面的程式碼JAR
- 如何程式讀入jar包中的任何檔案。JAR
- Java屬性檔案的讀取Java
- Java中jar命令用法詳解JavaJAR
- Java系列:讀取XML檔案JavaXML
- Java高效讀取大檔案Java
- 12c中匯入java的jar檔案JavaJAR
- Java讀取本地檔案,並顯示在JSP檔案中JavaJS
- Java API 讀取HDFS的單檔案JavaAPI
- javabean 如何打包到jar檔案裡JavaBeanJAR
- springboot 執行 jar 包讀取外部配置檔案Spring BootJAR
- 讀取 jar 包中巢狀的 jar 包內容的方法JAR巢狀
- C# 讀取 ttf字型檔案裡的 UnicodeC#Unicode
- Java中檔案的讀寫操作Java
- Golang專案中讀取配置檔案Golang
- Spring Boot啟動後讀取jar包內部檔案Spring BootJAR
- Java中讀取檔案6種記憶體安全方式Java記憶體
- 如何在Java中讀取超過記憶體大小的檔案Java記憶體
- 簡單讀取XML檔案中的值XML
- k8s Java 專案替換 jar 中的 class 檔案K8SJavaJAR
- 查詢jar中的pom檔案JAR
- 手工清理ASM裡面的垃圾檔案ASM
- Java實時讀取日誌檔案Java
- java讀取大檔案並處理Java
- Java 讀取txt檔案生成Word文件Java
- Java讀取Json檔案工具類JavaJSON
- Java讀取多層級xml檔案JavaXML