導航:首頁 > 文件教程 > java從jar包中讀取資源文件

java從jar包中讀取資源文件

發布時間:2022-12-24 01:36:23

java獲取jar包中資源文件

在src目錄下建議一個文件夾,專門存放配置文件,項目編譯後,直接用jar命令打包即可。
如有疑問,可遠程協助解決。

有問題歡迎提問,滿意請採納,謝謝!

⑵ java打成jar包後讀取非resources文件

在Java項目中,需要讀取resource資源目錄下的文件,以及遍歷指定資源目錄下的所有文件,並且在讀取文件時保留文件相對路徑。

⑶ 如何讀取Jar包裡面的文件

方法1:
@Test
public void usingSpringMethod() throws Throwable {
patternResolver = new ();
Resource[] resources = patternResolver.getResources("com/yyy/1.txt");//<--②
if (resources != null && resources.length > 0) {
InputStreamReader inputStreamReader = new InputStreamReader(resources[0].getInputStream());//<---①
char[] data = new char[100];
inputStreamReader.read(data);
assertEquals((new String(data)).trim(), "ddddd");
}
}
上面①處,使用[0].getInputStream()代替原來的
引用
resources[0].getFile()
當然,②處的資源路徑表達式,可以使用Spring的其它方式表示:
方式1:
Java代碼
Resource[] resources = patternResolver.getResources("classpath:com/yyy/1.txt");
方式2:
Java代碼
Resource[] resources = patternResolver.getResources("classpath*:com/yyy/1.txt");
方法2:
直接原生的JDK方式讀取
Spring對資源路徑的表達方式非常靈活,這是首選使用Spring載入資源的原因。當然,使用JDK原生的ClassLoader也可以載入JAR中的資源文件,如下所示:
@Test
public void usingJDKMethod() throws Throwable {
URL url = getClass().getClassLoader().getResource("com/yyy/1.txt");//<--①
InputStreamReader inputStreamReader = new InputStreamReader(url.openStream());
char[] data = new char[100];
inputStreamReader.read(data);
assertEquals((new String(data)).trim(), "ddddd");
}
唯一的限制是,在①處不再支持classpath:或classpath*:的前綴了。

⑷ jar方式運行項目-讀取jar包中的文件

在目前的微服務和容器部署的SpringBoot壞境下,我們一般將項目直接打成 jar包的方式運行(java -jar *),我們可能需要讀取resources目錄下的自定義文件,想在程序運行時找到該目錄,並讀取需要的文件。

當時我使用 System.getProperty("user.dir") 獲取工作目錄的坑,本地idea工具運行沒問題,但是一但打成jar包,路徑會變成jar包所在的目錄,無法讀取jar內部的文件, 不建議用這種方式

由於jar中的文件都屬於資源的一種,所以獲取需從類載入器進行獲取。正確的姿勢是採用 this.getClass().getClassLoader().getResourceAsStream() 的方式。

讀取自定義文件時,由於getResourceAsStream方法返回的是一個InputStream流,採用InputStreamReader這種方式 最好指定一種編碼方式 ,不然可能 中文亂碼 !(我在解析xml時中文亂碼)

⑸ 如何從JAR文件中讀取文件

1、創建一個路徑為要讀取的txt文件的file對象rFile。2、創建一個路徑為要寫入的txt文件的file對象wFile。3、創建一個FileReader對象,傳入rFile到構造器。4、准備一個char數組,FileReader類有一個繼承自java.io.Reader的read(char[]cbuf)方法,將字元讀入數組。5、創建一個FileWriter對象,傳入wFile到構造器。6、FileWriter類有一個繼承自java.io.Writer的write(char[]cbuf)方法,可以寫入字元數組。7、最後別忘了關閉流。

⑹ jar包裡面的代碼如何讀取jar包中的配置文件

先看代碼目錄結構:
src/weather/
QueryWeather.java
weather.xml
程序裡面可以直接讀取到.xml文件,代碼如下:
private static String getXmlContent()throws IOException {
FileReader f = new FileReader("src/weather/weather.xml");
BufferedReader fb = new BufferedReader(f);
StringBuffer sb = new StringBuffer("");
String s = "";
while((s = fb.readLine()) != null) {
sb = sb.append(s);}return sb.toString();}但是一旦把這個class文件和xml文件打成jar包再運行,對不起,報錯,QueryWeather.class位元組碼根本找不到weather.xml
在看打成jar包的結構:META-INFMANIFEST.MFweatherQueryWeather.class
weather.xml
用下面的方法就可以找到weather.xml
private static String getXmlContent()throws IOException {
Reader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml"));
BufferedReader fb = new BufferedReader(f);
StringBuffer sb = new StringBuffer("");
String s = "";

閱讀全文

與java從jar包中讀取資源文件相關的資料

熱點內容
安裝三菱編程閃退怎麼回事 瀏覽:488
手機怎麼創建word文件格式 瀏覽:694
c語言連接資料庫 瀏覽:887
數據線粉色和白色哪個是正 瀏覽:775
vb編程應注意什麼 瀏覽:855
js循環添加控制項 瀏覽:615
學習計算機網路的作用 瀏覽:235
access資料庫最新內容怎麼調 瀏覽:203
上古世紀新版本跑商 瀏覽:267
iphone5國際漫遊設置 瀏覽:107
ipodwatch如何安裝app 瀏覽:114
誰有微信搶紅包的群號 瀏覽:872
word07頁碼從任意頁開始 瀏覽:791
js禁止滑動事件 瀏覽:800
蘋果查序號怎麼看不是 瀏覽:61
linux在txt文件 瀏覽:568
ps如何導入文件匹配 瀏覽:201
轉轉app怎麼把自己的賬號租出去 瀏覽:828
福昕閱讀器合並照片pdf文件 瀏覽:591
vhd文件有什麼用 瀏覽:482

友情鏈接