Netbeans中的FileNotFoundException

时间:2011-09-03 05:07:50

标签: java netbeans

我在Netbeans中有一个java应用程序项目。我只有一节课。 我试着这样做

FileReader fr = new FileReader("sal.html");

我在同一个包下有sal.html文件。但是当我跑步时我得到了这个错误:

Errorjava.io.FileNotFoundException: sal.html (The system cannot find the file specified)

7 个答案:

答案 0 :(得分:4)

我的猜测是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");将文件读取为包内的资源。这是访问资源的首选方式,因为您不再需要担心绝对路径和相对路径。如果资源在您的类路径中,您可以访问它。有关详情,请参阅this answer

答案 1 :(得分:1)

将您的文件放到主项目文件夹中。不要像src或bin等任何子文件夹那么它会检测你的文件。

答案 2 :(得分:1)

单击Netbeans中的文件视图。将sal.html移动到项目文件夹。这样你就会看到它

- JavaProject
  + build
  + lib
  + nbproject
  + src
  + build.xml
  manifest.mf
  sal.html

现在

FileReader fr = new FileReader("sal.html");

会奏效。

答案 3 :(得分:1)

System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());

然后它将显示JVM从哪里检索文件。通常用于/home/username/NetbeansProjects/ApplicationName/中的linux。

将您的资源或文件放到此路径

答案 4 :(得分:0)

我认为你的问题出在文件的相对路径上。尝试使用文件的完整路径声明FileReader

答案 5 :(得分:0)

FileNotFoundException表示找不到文件。

如果没有文件sal.html,netbeans的build文件夹会有所不同。

尝试使用绝对路径代替使用相对路径。

答案 6 :(得分:0)

这不是“未找到文件”问题。 这是因为每个类都拥有自己的资源(让它成为文件,图像等),只能通过资源加载器语句访问,如下所示:

  

InputStream in = this.getClass()。getResourceAsStream(“sal.html”);

唯一的解决方法是获取InputStream而不是文件。 希望这会有所帮助。