我有一个具有以下文件夹结构的简单 Java Web 应用程序。
当我部署 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/