0
文件我有一個名爲下載項目包含這樣的文件:尷尬的結果,而讀取包含使用的getResource()的路徑空間在Java
Downloader
-->src
-->Downloader
-->DownLoader.java
-->AudioLinks
我已經通過下面的函數試圖從Downloader.java訪問AudioLinks 。
public void readFile()
{
{
File file=new File(this.getClass().getResource("AudioLinks").getFile());
if(file.exists())
{
System.out.println(file+" Exists");
}
else
{
System.out.println(file+" Doesn't exist");
}
}
}
它返回以下:
E:\Project%20Eclipse\Workspace\Downloader\bin\Downloader\AudioLinks Doesn't exist
但是如果我編輯這樣的功能(替換 「%20」 由「「):
public void readFile()
{
{
File file=new File(this.getClass().getResource("AudioLinks").getFile().replaceAll("%20", " "));
if(file.exists())
{
System.out.println(file+" Exists");
}
else
{
System.out.println(file+" Doesn't exist");
}
}
}
它返回:
E:\Project Eclipse\Workspace\Downloader\bin\Downloader\AudioLinks Exists
問題是如果我導出我的專業版克到可運行的jar它給兩個例子中「不存在」。任何人都可以解釋這些事件嗎?
不要讀它作爲文件。通過_just_ getResource()'將其作爲URL讀取。通過'getResourceAsStream'去掉File wrapper(或者'InputStream',取決於所需的類型) – 2014-11-05 14:35:08
Jars不包含文件,所以你不能使用'File'。 – 2014-11-05 14:36:34
@ greg-499當然罐子包含文件。嘗試使用歸檔工具打開JAR文件(可能在Windows上以.zip重命名),看看你得到了什麼 – msrd0 2014-11-05 14:45:14