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

熱點內容
熊貓看書哪個文件夾 瀏覽:650
win10勒索文件保護設置 瀏覽:842
arcgissde93安裝教程 瀏覽:487
xml文件注釋快捷鍵 瀏覽:878
extjs的配置文件怎麼配置重定向 瀏覽:740
access資料庫查看aspx 瀏覽:154
數控編程如何減少時間 瀏覽:779
蘋果FLAC屬性 瀏覽:642
硬碟評分工具 瀏覽:734
為什麼e福州app登不上 瀏覽:963
jsfoutputlink 瀏覽:472
哪個網站可以聽南音 瀏覽:264
蘋果裝系統裝win7驅動 瀏覽:686
php判斷file是否有文件 瀏覽:979
和平精英使用什麼編程開發 瀏覽:102
f3文件 瀏覽:523
快手3d環繞音樂用什麼app 瀏覽:376
linux新增一個文件 瀏覽:440
消失的手機圖片在哪個文件夾里 瀏覽:610
word2010表格外框雙線內框單線 瀏覽:56

友情鏈接