gpt4 book ai didi

java - 尝试更新 src/web/prod 文件夹(jsp)中的文件

转载 作者:行者123 更新时间:2023-11-30 05:14:36 25 4
gpt4 key购买 nike

我同时使用jboss、eclipse和svn。我必须将文件放在测试文件夹中: test/create.jsptest/data.txt 。我想要做的是,当我调用 create.jsp 时,它将更新我的 data.txt 。显然,我希望我的 data.txt 保留在原来的位置,因为其他脚本正在尝试从中读取数据。

我尝试了数十种新方法来放置我的 File 对象的路径,但由于某种原因它在 jboss war 文件夹下创建了文件。

尝试过:

ServletContext app = getServletContext();
String path1 = app.getRealPath("/");
File f = new File(path1);
// AND
File f = new File("../../data.txt");

最佳答案

假设 /test 文件夹位于 webcontent 中,那么您需要以下内容:

String absolutePath = getServletContext().getRealPath("/test/data.txt");
File file = new File(absolutePath);

String webcontentRoot = getServletContext().getRealPath("/");
File file = new File(webcontentRoot, "test/data.txt");

你看到了吗? Java IO 只理解本地磁盘文件系统路径,而不理解 URL 或上下文之外的路径。 ServletContext#getRealPath() 用于将相对 Web 路径转换为绝对本地磁盘文件系统路径,而后者又可以在通常的 Java IO 中进一步使用。您不应该在 Java IO 内容中使用相对路径。您将依赖于当前工作目录,该目录可能因环境/情况而异。

也就是说,您通常不想将文件写入网络内容。每当你重新部署 war 时,他们就会迷路。而是在 Web 应用程序之外的其他位置创建固定磁盘文件系统路径并使用它。或者更好的是,使用独立的 SQL 数据库:)

关于java - 尝试更新 src/web/prod 文件夹(jsp)中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2046265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com