java - 缓冲和修改输出流

标签 java servlets io

有没有办法缓冲OutputStream,并在返回之前对其进行修改?这是我的代码片段:

public ServletOutputStream getOutputStream() throws IOException {
    BufferedOutputStream buffer = new BufferedOutputStream(super.getOutputStream());
    // Modify the buffer contents, before it is returned
    return new DelegatingServletOutputStream(buffer);
}

谢谢。

最佳答案

@oliholz 的答案给出了一种方法,您可以在数据“通过”过滤器流到达其目的地时对其进行修改。

另一种方法是将输出发送到ByteArrayOutputStream,将内容提取到字节数组,修改字节,最后将它们写入“真实”输出流。

或者您可以扩展 ByteArrayOutputStream 并重写其 close() 方法以在流关闭时执行操作...如果这就是您的意思。或者您可以覆盖 getBytes 以在返回字节之前修改字节。或者重写 write 方法来修改正在写入的字节。您可以采用多种方法来实现它,具体取决于您的要求。

关于java - 缓冲和修改输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6489657/

相关文章:

java - 在 rcon 客户端上显示来自游戏服务器的控制台源

java - Camel Jetty 中的自定义基本身份验证

Java 使用 fileoutstream 内存不足

Java ArrayList 空指针异常

jsp - 如何验证授权的表单提交

Haskell:使用 Parsec 和 IO 解析文件

java - Akka Stream 中直播资源流程说明

java - 服务链 - Java

java - AWS 相当于 system.out.println()?

android - json改变元素的顺序