導航:首頁 > 文件教程 > 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包中讀取資源文件相關的資料

熱點內容
核桃編程如何退錢 瀏覽:17
如何查看預約app 瀏覽:774
數控哪個編程軟體速度最快 瀏覽:135
qq表情白眼是哪個 瀏覽:965
shell循環文件名 瀏覽:602
照片3d建模源代碼 瀏覽:434
西安iPhone6升級內存 瀏覽:84
小學生的編程的課是學什麼的 瀏覽:114
就業下載什麼app 瀏覽:191
個人配置文件重定向到D盤 瀏覽:22
js屏幕寬度 瀏覽:312
sql查找某列重復資料庫 瀏覽:48
智行火車票用微信支付 瀏覽:262
網路定價過程哪些內容發生變化 瀏覽:200
dubbo服務提供者的配置文件 瀏覽:182
win8系統如何壓縮文件 瀏覽:875
網站怎麼上傳代碼 瀏覽:4
java日誌的好處 瀏覽:103
武漢奇米網路怎麼樣 瀏覽:689
筆記本如何恢復原來數據 瀏覽:76

友情鏈接