簡體   English   中英

Netbeans中的FileNotFoundException

[英]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.

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