您想这样做。
首先,您需要获取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。
另请注意,这将适用于不存在的文件。容器不检查文件的实际存在。但实际创建任何丢失的中间目录等将取决于您自己。
最后,当然,即使您返回了文件路径,也并不意味着您实际上可以写入该路径。这是超出容器范围的操作系统许可问题。