[英]FileNotFoundException in Netbeans
我在Netbeans中有一個java應用程序項目。 我只有一節課。 我試着這樣做
FileReader fr = new FileReader("sal.html");
我在同一個包下有sal.html文件。 但是我跑的時候遇到這個錯誤:
Errorjava.io.FileNotFoundException: sal.html (The system cannot find the file specified)
我的猜測是Netbeans正在從項目的根文件夾中調用JVM。 引用File Javadoc的一部分 :
默認情況下,java.io包中的類始終解析當前用戶目錄的相對路徑名。 此目錄由系統屬性user.dir命名,通常是調用Java虛擬機的目錄。
要驗證相對路徑分辨率,您可以嘗試:
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());
然后,您可以將文件移動到java正在查找的位置。 很可能是你項目的根文件夾 。
您還可以考慮使用類加載器使用getClass().getResourceAsStream("sal.html");
將文件讀取為包內的資源getClass().getResourceAsStream("sal.html");
。 這是訪問資源的首選方式,因為您不再需要擔心絕對路徑和相對路徑。 如果資源在您的類路徑中,您可以訪問它。 請參閱此答案了解更多信息
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());
然后它將顯示JVM從哪里檢索文件。 通常用於/home/username/NetbeansProjects/ApplicationName/
中的linux。
將您的資源或文件放在此路徑中
將您的文件放到主項目文件夾中。 不要像src或bin等任何子文件夾。然后它會檢測你的文件。
單擊Netbeans中的文件視圖。 將sal.html移動到項目文件夾。 這樣你會看到它
- JavaProject
+ build
+ lib
+ nbproject
+ src
+ build.xml
manifest.mf
sal.html
現在
FileReader fr = new FileReader("sal.html");
將工作。
我認為你的問題在於文件的相對路徑。 嘗試使用文件的完整路徑聲明FileReader
。
FileNotFoundException
表示找不到文件。
在沒有文件sal.html的情況下,netbeans的構建文件夾是不同的。
嘗試使用絕對路徑代替使用相對路徑。
這不是“找不到文件”問題。 這是因為每個類都擁有自己的資源(讓它成為文件,圖像等),只能通過資源加載器語句訪問,如下所示:
InputStream in = this.getClass()。getResourceAsStream(“sal.html”);
唯一的解決方法是獲取InputStream而不是文件。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.