我有一个Java Spring项目,在某个包里有一个文件(In project).但是当我想打开它时。
Tomcat处理它,并在C:\Tools\apache-tomcat-9.0.35\bin中搜索这个文件。
我在获取文件时出现以下异常 new File("./src\\main\\resources\\directory\\myFile.txt");
异常情况
java.io.FileNotFoundException: C:\Tools\apache-tomcat-9.0.35\bin\src\main\resources\directory\myFile.txt
问题是你使用的相对文件位置是".src\main\resources\directory\myFile.txt"。
当你的代码在tomcat上运行时,你的当前目录是 "C:\Tools\apache-tomcat-9.0.35\bin",这就是为什么绝对路径是 "C:\Tools\apache-tomcat-9.0.35\binsrc\main\resources\directory\myFile.txt"
可能的解决办法。
将该文件作为资源纳入,并使用classpath加载器加载。 见下面的例子。
使用文件的绝对路径。(不是一个好的解决方案)
此链接中的例子 从Spring Boot的资源文件夹中读取文件
File file = new File(getClass().getResource("directory/myFile.txt").getFile());