我需要在 Tomcat 上运行一个网络应用程序,但它无法读取 Tomcat 上的 txt 文件(从如下相对路径)。但是,如果我使用完整路径,它确实有效。
所以我想知道我应该把这些txt文件放在哪里,这样当Tomcat启动时,应用程序可以从相对路径成功读取txt文件。
目前,项目结构如下,txt文件与Project Explorer中的src文件位于同一目录在 Eclipse 中。
Project_Name
src
java files
EDGES.txt
NODES.txt
代码如下,我是Java新手,如果有人能详细解答一下,我将不胜感激。
代码如下:
public class RouteingDao {
NodeJSONReader nodeInput = new NodeJSONReader("NODES.txt");
EdgeJSONReader edgeInput = new EdgeJSONReader("EDGES.txt");
...
}
NodeJSONReader/EdgeJSONReader类如下:
public class EdgeJSONReader {
private EdgeEntity[] edgeEntity;
// constructor
public EdgeJSONReader(String JSON_FILE) {
edgeEntity = readEntityFromFile(JSON_FILE);
}
// load the JSON data from local file
public EdgeEntity[] readEntityFromFile(String JSON_FILE) {
try {
Reader reader = new FileReader(JSON_FILE);
Gson gson = new Gson();
edgeEntity = gson.fromJson(reader, EdgeEntity[].class);
}
...
}
}
最佳答案
如果您使用的是 servlet,则访问 servlet 上下文和 getRealPath 方法。
this.getServletContext().getRealPath("WEB-INF/nodes.txt")
发送到 getRealPath 的相对路径将扩展到您的网络应用程序文件的位置。您可以添加任何您喜欢的路径,甚至可以添加到 WEB-INF 中的隐藏文件。
从您可以使用的 JSP
${pageContext.servletContext.getRealPath("WEB-INF/nodes.txt")}
请注意,这将位于构建目录中,因此对 nodes.txt 的任何更改都不会保存到原始文件中。
关于java - 从 Tomcat 上的相对路径读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521166/