![](/img/trans.png)
[英]What is the file path I need to use to view my html pages in my java project on netbeans?
[英]What relative path do I need to use in my Java Project
我有一個像這樣的結構:
src -|com -|company -|Core --> JAVA class -|rules --> text files
Inside Core是一個Java類,它使用:
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
但我無法弄清楚使用什么相對路徑。 現在我使用:
"..\\..\\..\\..\\rules\\rule1.txt"
我也嘗試過:
"../../../../rules/rule1.txt"
我哪里做錯了?
它不起作用。 相對路徑相對於當前應用程序的工作目錄 , 而不是類的目錄。 如果要查找當前工作目錄的內容,請使用System.getProperty("user.dir")
。
更好的方法是將rules目錄添加到類路徑中,然后使用Class#getResourceAsStream()
。
另一種方法是以其他方式設置規則目錄的路徑:如果可行或設置某些系統屬性,您可以提供命令行選項(例如java -Drules.path=/path/to/rules ...
以及稍后通過System.getProperty("rules.path")
讀取。
這取決於您啟動的位置,而不是Java類的包結構。 正如@EJP指出的那樣,其他API確實反映了您的包結構。
我過去使用的一個技巧是讓一行代碼創建一個文件“SomeSillyName.txt”。 並看看實際彈出的位置。
我的猜測是你可能會從src啟動,所以一個簡單的“rules / rule1.txt”就可以了。
執行時的當前目錄與當前類所在的包無關。它不會更改。
如果您的文件隨應用程序一起分發,請使用Class.getResourceAsStream()。
如果您使用的是像Eclipse這樣的IDE,則工作目錄默認為項目根文件夾。 所以src/rules/rule1.txt
應該可行。 (或者我誤解了你的文件夾結構。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.