创建文件并将其存储在Java Web应用程序文件夹中

我想创建一个xml文件并将其存储在spring Mvc Web应用程序内的文件夹中。

我可以使用获得我的应用程序的根 request.getContextPath()

我如何获取应用程序的相对路径,以便它可以在任何计算机上独立于应用程序文件夹的位置使用?

喜欢 C:/folder/folder/MYAPPLICATIONROOTFOLDER

回答:

您想这样做。

首先,您需要获取ServletContext。我不知道如何在Spring MVC中完成此操作,但是它在某处。

然后,您可以执行以下操作:

ServletContext ctx = getServletContextFromSpringSomehow();

String path = ctx.getRealPath("/folder/filename.txt");

FileWriter fw = new FileWriter(path);

此处的关键是ServletContext.getRealPath。它为您提供了Webapp中资源的本地文件系统路径。观察者在这里使用“

/”,因为它是一个URL,而不是文件名。容器将为您提供有效的文件名。请注意,这仅在容器爆炸WAR或部署爆炸WAR时有效。如果WAR没有爆炸,则将从容器返回null。

另请注意,这将适用于不存在的文件。容器不检查文件的实际存在。但实际创建任何丢失的中间目录等将取决于您自己。

最后,当然,即使您返回了文件路径,也并不意味着您实际上可以写入该路径。这是超出容器范围的操作系统许可问题。

以上是 创建文件并将其存储在Java Web应用程序文件夹中 的全部内容, 来源链接: utcz.com/qa/416068.html

回到顶部