java 如何取 ServletOutputStream 中的数据

发布于 2021-11-24 23:08:37 字数 743 浏览 554 评论 3

您可以使用 ServletOutputStream 类的 write(byte[] b) ​方法将数据写入 ServletOutputStream 中,然后使用 ByteArrayOutputStream 类的 toByteArray() ​方法将数据转换为字节数组。

以下是一个示例代码:

ServletOutputStream outputStream = response.getOutputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();

// 写入数据到 ServletOutputStream
outputStream.write("Hello World".getBytes());

// 将 ServletOutputStream 中的数据转换为字节数组
byte[] data = baos.toByteArray();

在上面的代码中,我们首先获取 ServletOutputStream 对象,然后创建一个 ByteArrayOutputStream 对象。接下来,我们使用 write()方法将数据写入 ServletOutputStream 中。最后,我们使用 toByteArray() 方法将数据从 ByteArrayOutputStream 中提取到字节数组中。

请注意,取数据之前,请确保已经写入了数据到 ServletOutputStream 中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

JSmiles 2023-06-30 23:04:34

有点麻烦;

1.首先自实现一个 ServletOutputStream,重写 write 方法;

2. 再实现一个 HttpServletResponseWrapper,重写 geOutputStream 和 getWriter 方法,以使得目标资源使用 1 中的 ServletOutputStream,这样可以把 目标数据 保存到 1 中的 ServletOutputStream 中;

3. 写一个 Filter 将 2 中实现的 Response 传递给处理 目标数据的对象;

4. 再在 Filter 中获取 1 中保存的数据,此时你可以随便 揉捏玩弄 你在 1 中 保存的数据了;

OK,搞定,是不是有点麻烦,其他猿有没有更好的 Schema...

掩饰不了的爱 2021-11-29 23:39:55

我使用的是springmvc。能给我代码最好。感谢你的回答。谢谢。

情栀口红 2021-11-29 04:37:13

继承 HttpServletResponseWrapper 重载 getWriter 方法,这个在网上也能搜到。如果你是使用 springmvc 的话可以给你代码。其他架构思路是一样的!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文