java - java/jsp Web 应用程序中的 FileOutputStream 路径

标签 java tomcat web-applications fileoutputstream file-writing

我有一个具有以下文件夹结构的简单 Java Web 应用程序。

enter image description here

当我部署 Web 应用程序时,它在 WEB-INF/classes 文件夹中有 data.json 文件。我需要从 WEB-INF/classes 文件夹中的 controller.java 类 Controller 包将数据写入此文件。

我尝试了以下代码。

FileOutputStream output = new FileOutputStream("..\\data.json", true);
output.write(jsonObject.toJSONString().getBytes());
output.flush();

这没有给我任何错误,表明该操作发生在我计算机某处的文件中。

如何写入 data.json 文件?我不能在这里给出绝对路径。

最佳答案

WEB-INF/classes 用于类路径。那里的文件应被视为只读、可缓存的资源(getResource、getResourceAsStream)。

可以使用HttpRequest.getServletContext().getRealPath("/WEB-INF"), 用于文件系统路径。

我建议使用类文件作为模板,第一次复制到一个真实的文件系统路径,然后被覆盖。

使用 /,而不是 Windows \\

使用 close() 然后不需要 flush()

使用 getBytes(StandardCharsets.UTF_8)

关于java - java/jsp Web 应用程序中的 FileOutputStream 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302846/

相关文章:

java - java中ThreadPool的编号

java - Maven tomcat 插件 : tomcat7:run or tomcat7:run-war?

tomcat - Liferay死了,如何修复?

java - 编辑显示数据库中所选下拉值的 Servlet

java - 无法重定向到 DropBox 登录页面

flash - Flash AS3 中的动态舞台宽度和高度

java - 如何将固定大小的 Canvas 包裹在 BorderPane 中的 ScrollPane 居中?

java - 我在运行前初始化 TextView,因为 View 尚未设置

java - 如何去除 OpenCV 中不需要的线条/噪音?

tomcat - jakarta.servlet.ServletException : Class [com. practice.MyServlet] 不是 Servlet