[英]Java relative path in NetBeans
我正在開發一個 NetBeans 模塊,其中我有一個 Java package 稱為test
和另一個 ZEFE90A8E604A7C840D8Z 稱為test.templates
。 我想從測試 package 中的 Java 文件中讀取test.templates
package 中的文本文件。 我嘗試了幾種方法,但它給出了FileNotFoundException
異常:
BufferedReader br = new BufferedReader(new FileReader("templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("/test/templates/test.txt"));
BufferedReader br = new BufferedReader(new FileReader("src/test/templates/test.txt"));
但是這些都不起作用..我想使用相對路徑,而不是絕對路徑。 我應該怎么辦?
你應該注意一些關於相對路徑(Netbeans)的事情:
+ 文件:默認是項目文件夾,表示在src
文件夾之外。
如果保存到test.txt
,它將生成: project/test.txt
。
如果保存到data/test.txt
,... project/data/test.txt
因此,如果要加載文件,則相反。 像這樣,您應該將文件放在 project/data/filename.txt 中。 然后在編碼時,你會得到 path: data/filename.txt
。
+ ImageIcon:如果可以,我稍后會分享。
+ 圖片(SplashScreen):我稍后會分享。
您將需要使用getResource
或getResourceAsStream
。
java2s.com 上的示例:
http://www.java2s.com/Code/Java/Development-Class/Loadresourcefilerelativetotheclasslocation.htm
getResource()
返回一個 URL,因此要提取文件名,您可以嘗試調用getFile()
。
您傳遞給 getResource 的文件路徑將基於您的 netbeans package。 使用前導斜杠表示類路徑的根。
例子:
getResource(/db_files/table.csv).getFile()
try
{
BufferedReader br = new BufferedReader(new FileReader(getClass().getResource("/test/templates/test.txt").toString().substring(6)));
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(this, ee);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.