package com.github.bjuvensjo.rsimulator.recorder; import javax.servlet.ServletOutputStream; import java.io.ByteArrayOutputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; /** * A PrintWriter and ServletOutputStream decorator which shares a ByteArrayOutputStream * * @author Anders Bälter */ public class ByteArrayPrintWriter { private ByteArrayOutputStream baos = new ByteArrayOutputStream(); private PrintWriter pw = new PrintWriter(baos); private ServletOutputStream sos = new ByteArrayServletStream(baos); public PrintWriter getWriter() { return pw; } public ServletOutputStream getStream() { return sos; } /** * Get the byte array as a String * @param encoding * @return String * @throws UnsupportedEncodingException */ public String toString(String encoding) throws UnsupportedEncodingException { return baos.toString(encoding); } public byte[] getBytes() { return baos.toByteArray(); } }