簡體   English   中英

txt文件(Java)與getResource()一起使用時的問題

[英]Issues using getResource() with txt file (Java)

我有一個設置,可以在程序中使用txt文件(讀寫文件)。 目前,我已經對其進行了設置,以便可以在計算機上使用本地文件路徑,但是我需要將其打包到可執行的JAR中。 為此,我嘗試將文件路徑字符串切換為以下內容:

String filepath = MyClass.class.getResource("/resources/textfile.txt");

但是,當我運行此命令時,會遇到很多錯誤。 谷歌搜索方法后,我發現了類似的方法getResourceAsStream ,我也嘗試過。 這似乎返回一個InputStream對象,但是理想情況下,我需要將文件路徑作為字符串。 這可能嗎? 如果沒有,我有什么選擇?

附加信息:

這是嘗試讀取和寫入txt文件時收到的錯誤消息:

java.io.FileNotFoundException:/Users/Fred/Documents/Eclipse%20Projects/RandomProject/bin/resources/textfile.txt (No such file or directory)

那么您提供的代碼將無法編譯,因為Class.getResource返回的是URL而不是String 您不能將資源視為“僅另一個文件”,因為不是。

基本上,您應該更改需要讀取文件以接受InputStream而不是文件名的任何內容,然后傳遞調用getResourceAsStream()的結果。

該方法返回URL,而不是String。 它的簽名是public URL getResource(String name)

您可能想要做:

String filepath = MyClass.class.getResource("/resources/textfile.txt").getPath();

我有一個設置,可以在程序中使用txt文件(讀寫文件)。

對於只讀,資源可以位於應用程序類路徑上的Jar中。 (在生產中)應用程序類路徑上的資源可寫非常罕見。 該文本文件很可能需要放在可復制的路徑中(例如, user.home的子目錄-子目錄基於包名稱),並用作該路徑中的File

或換一種說法。 我認為您正在追求錯誤的道路,以實現目標。

如果您希望直接寫入JAR中的文本文件,那么我的朋友,那么您一路走錯! 請為我們發布更多代碼,以了解您到底想要實現什么以及如何實現。

暫無
暫無

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

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