[英]Using getClass().getResource to retrieve a .txt file to a JTextArea
[英]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.