有没有办法缓冲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/