创建文件并将其存储在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