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。引用文件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");的包内的资源。这是访问资源的首选方式,因为您不再需要担心绝对路径与相对路径。如果类路径中有资源,您可以访问它。有关更多信息,请参阅此答案。

将文件放入主项目文件夹。不指向任何子文件夹,如src,或bin等。然后它会检测到你的文件。

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

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

现在

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

将起作用。

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

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

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

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

FileNotFoundException表示找不到文件。

netbeans的构建文件夹与没有sal.html文件的地方不同。

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

这不是"找不到文件"的问题。这是因为每个类都有自己的资源(可以是文件、图像等(,只能通过资源加载器语句访问,如下所示:

InputStream in=this.getClass((.getResourceAsStream("sal.html"(;

唯一的解决方案是,您将获得一个InputStream而不是一个文件。希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新