tomcat 部署后的文本文件位置
text files location after tomcat deployement
我正在使用文本文件在我的网络应用程序中进行一些处理,
但是当我在 tomcat 上部署时,路径已更改,我无法再访问我的文件
我的结构如下
src 包含 java 类 并且 files 包含我要访问的文件。
我在部署前通过以下路径访问它:
String filePath="files/P1.txt";
但部署后我无法再访问文件,
我如何定义路径以便它在部署后起作用?
非常感谢。
如果 P1.txt
直接位于 files/
下,据我所见,您的图片已标记为源目录,我希望该文件应位于类路径的根目录中并且可以在没有 files/
路径段的情况下访问。要从类路径中读取文件,您需要找到类加载器:
class MyClass {
public void readFile() {
// ... some logic
InputStream in = this.getClass().getClassLoader().getResourceAsStream("P1.txt");
// ... some logic with the stream.
}
}
为了验证类路径中的文件,也为了调试目的,您可以列出类路径中的所有文件:
Enumeration<URL> rootFiles = this.getClass().getClassLoader().getResources("");
传递给 getResources
方法的空字符串给出了类路径根目录中的文件和目录。您应该能够在那里看到您的文件。
我正在使用文本文件在我的网络应用程序中进行一些处理,
但是当我在 tomcat 上部署时,路径已更改,我无法再访问我的文件
我的结构如下
src 包含 java 类 并且 files 包含我要访问的文件。
我在部署前通过以下路径访问它:
String filePath="files/P1.txt";
但部署后我无法再访问文件,
我如何定义路径以便它在部署后起作用?
非常感谢。
如果 P1.txt
直接位于 files/
下,据我所见,您的图片已标记为源目录,我希望该文件应位于类路径的根目录中并且可以在没有 files/
路径段的情况下访问。要从类路径中读取文件,您需要找到类加载器:
class MyClass {
public void readFile() {
// ... some logic
InputStream in = this.getClass().getClassLoader().getResourceAsStream("P1.txt");
// ... some logic with the stream.
}
}
为了验证类路径中的文件,也为了调试目的,您可以列出类路径中的所有文件:
Enumeration<URL> rootFiles = this.getClass().getClassLoader().getResources("");
传递给 getResources
方法的空字符串给出了类路径根目录中的文件和目录。您应该能够在那里看到您的文件。