我正试图从Netbeans的文本文件中读取。在我的项目目录的顶层,我有foo.txt。然后在我的代码中,我有:
File file = new File("foo.txt");
抛出一个FileNotFoundException
。这是一个使用Spring和Tomcat的Java web应用程序,但我不确定这些细节是否重要,因为我在Netbeans中运行整个程序。基本上,我只是想知道我需要把文件放在哪里,这样Netbeans就会读取它。
Update - good call guys,它正在Tomcat的bin目录中查找。这可能是一个愚蠢的问题,我该如何让它在顶层项目目录中查找呢?我觉得把文本文件放到tomcat的bin中是不合适的。
您可以尝试打印File
对象的绝对路径,以查看它在文件系统中的位置。
System.out.println(file.getAbsolutePath());
我将使用以下命令来确定将文件放在哪里:
System.out.println(System.getProperty("user.dir"));
直接回答您的问题,如果您在Tomcat上运行应用程序,将从当前工作目录打开文件。这可能是tomcat
目录下的bin/
文件夹。
您可以通过检查file.getAbsolutePath()
的结果来确定程序正在查找的位置。
然而,对于web应用程序,我建议把你需要阅读的文件放在你的类路径中,这样当你部署你的web应用程序时,你就不必依赖于特定的文件结构。
尝试System.getProperty("user.dir")
获取当前工作目录