簡體   English   中英

從資源目錄讀取文件時FileNotFound異常

[英]FileNotFound Exception while reading file from resource directory

我正在嘗試使用以下代碼從資源目錄中讀取文件

new FileInputStream(new File(getClass().getClassLoader().getResource(keyFile).getFile()))

在運行時低於異常

java.io.FileNotFoundException:文件:\\ D:\\ WorkSpace \\ server \\ target \\ server.jar!\\ BOOT-INF \\ classes!\\ config \\ key.pgp(文件名,目錄名或卷標語法不正確)
在java.io.FileInputStream.open0(本地方法)
在java.io.FileInputStream.open(未知來源)
在java.io.FileInputStream。(未知源)

根據您試圖獲取的資源在jar中的位置,您應該使用相對路徑來獲取資源。 您也可以通過使用ResourceAsStream方法直接將資源作為InputStream來詢問來完全跳過File對象:

InputStream in = getClass().getResourceAsStream("/config/key.pgp");

由此:

java.io.FileNotFoundException:文件:\\ D:\\ WorkSpace \\ server \\ target \\ server.jar!

看起來代碼是從jar內部運行的,並且正在jar中尋找文件。

有兩個選擇:

1.)將文件添加到您的.class文件所在的jar中,並使用類路徑獲取文件(不要忘記開頭的/):/com/mycompany/myproject/files/myfile.txt

2.)使用文件的絕對路徑:“ D:\\ WorkSpace \\ server \\ target \\ BOOT-INF \\ classes \\ config \\ key.pgp”

暫無
暫無

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

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