標籤:java
getResource()和getResourceAsStream()
編譯後的Java類檔案可以打包成一個jar檔案隨處運行。但是當我們需要使用一些資源如:一幅映像,一段音頻時,就需要在jar包外帶有一個資源檔夾,必須保證jar包和資源檔夾一起發布否則程式就不能正常運行。我們希望的是只發布一個jar包,把資源均包含在內。為此我們需要讀取資源檔:
利用Java提供的兩個函數URL Class.getResource()和InputStream Class.getResourceAsStream()。
這裡只著重介紹函數URL Class.getResource(),函數InputStream Class.getResourceAsStream()與之類似。
我的項目結構如下:
檔案version.properties存放位置如下:
代碼如下:package com.ryze.work.component;public class MainFrame {//public static final String VERSION_PROPERTIES_FILENAME = "/version.properties";public static final String VERSION_PROPERTIES_FILENAME = "version.properties";public static void main(String[] args) throws Exception{MainFrame mainFrame = new MainFrame();mainFrame.test();}public void test(){java.net.URL versionPropertiesURL = this.getClass().getResource(VERSION_PROPERTIES_FILENAME);System.out.println(versionPropertiesURL);}}運行結果如下:
當用代碼 public static final String VERSION_PROPERTIES_FILENAME = "/version.properties";替換掉public static final String VERSION_PROPERTIES_FILENAME = "version.properties";
則需要將檔案version.properties放到如下路徑:
Java學習篇之---getResource()和getResourceAsStream()