Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java/jsp web应用程序中的FileOutputStream路径_Java_Tomcat_Web Applications_Fileoutputstream_File Writing - Fatal编程技术网

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

java/jsp web应用程序中的FileOutputStream路径,java,tomcat,web-applications,fileoutputstream,file-writing,Java,Tomcat,Web Applications,Fileoutputstream,File Writing,我有一个简单的JavaWeb应用程序,具有以下文件夹结构 当我部署web应用程序时,它在web-INF/classes文件夹中有data.json文件。我需要从WEB-INF/classes文件夹中的controller.java class controller包将数据写入此文件 我尝试了以下代码 FileOutputStream output = new FileOutputStream("..\\data.json", true); output.write(jsonObject.toJ

我有一个简单的JavaWeb应用程序,具有以下文件夹结构

当我部署web应用程序时,它在web-INF/classes文件夹中有data.json文件。我需要从WEB-INF/classes文件夹中的controller.java class 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)

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

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

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

使用
/
,而不是Windows
\\

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

使用
getBytes(StandardCharsets.UTF_8)

以下代码工作正常

FileOutputStream output = new FileOutputStream( request.getSession().getServletContext().getRealPath("WEB-INF/classes/data.json"), false);
下面的代码起作用了

FileOutputStream output = new FileOutputStream( request.getSession().getServletContext().getRealPath("WEB-INF/classes/data.json"), false);

看看这篇文章可能对你有帮助:看看这篇文章可能对你有帮助:把data.json文件放在WEB-INF文件夹的类文件夹之外可以吗?在WEB-INF之外,外界可以直接访问它。对/yourapp/data.json的任何请求都将服务于该文件,除非您明确保护它。这里的HTTPRequest是什么?我怎样才能得到它。我可以将一个
HttpServletRequest
对象从jsp传递到java文件,但它不包含GetServletContext()方法。是的,这就是我的意思。可以将data.json文件放在WEB-INF文件夹中的classes文件夹之外?在WEB-INF之外,外部世界可以直接访问它。对/yourapp/data.json的任何请求都将服务于该文件,除非您明确保护它。这里的HTTPRequest是什么?我怎样才能得到它。我可以将
HttpServletRequest
对象从jsp传递到java文件,但它不包含getServletContext()方法