簡體   English   中英

jar-File的InputStream始終返回null

[英]InputStream from jar-File returns always null

我知道這個問題已經問過幾次了,但是我認為我的問題與其他問題有所不同:

String resourcePath = "/Path/To/Resource.jar";

File newFile = new File(resourcePath);
InputStream in1 = this.getClass().getResourceAsStream(resourcePath);
InputStream in2 = this.getClass().getClassLoader().getResourceAsStream(resourcePath);

File-object newFile是完全可以的(找到了.jar文件,您可以獲取其元數據,例如newFile.length()等)

另一方面,InputStream始終返回null。 我知道javadoc說如果沒有找到具有該名稱的資源,則getResourceAsStream()為null,但是File存在! (顯然,因為它在文件對象中)

任何人都知道為什么會發生這種情況以及如何解決它,以便可以在InputStream中獲取.jar文件?

getResourceAsStream()方法不會從文件系統中加載文件。 它從類路徑加載資源。 您可以使用它來加載(例如)打包在JAR中的屬性文件。 您不能使用它從文件系統中加載文件。

因此,如果文件駐留在文件系統上,而不是JAR文件中,則最好使用FileInputStream類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM