簡體   English   中英

Java NetBeans 中的相對路徑

[英]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):我稍后會分享。

您將需要使用getResourcegetResourceAsStream

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.

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