Java 向写入程序写入字节的最简单方法?

Java 向写入程序写入字节的最简单方法?,java,servlets,stream,writer,Java,Servlets,Stream,Writer,我已经编写了一个HttpServletResponse的实现,我正在重写一个方法getOutputStream,该方法需要返回一个ServletOutputStream。写入所述流的数据必须使用UTF-8进行编码,然后写入构造函数中传递的单独写入器 这是我的伪代码 class StreamResponse implements HttpServletResponse { private final PrintWriter pw; StreamResponse(PrintWrite

我已经编写了一个
HttpServletResponse
的实现,我正在重写一个方法
getOutputStream
,该方法需要返回一个
ServletOutputStream
。写入所述流的数据必须使用
UTF-8
进行编码,然后写入构造函数中传递的单独
写入器

这是我的伪代码

class StreamResponse implements HttpServletResponse {
    private final PrintWriter pw;
    StreamResponse(PrintWriter pw) {
        this.pw = pw;
    }
    public PrintWriter getWriter() throws IOException {
        return pw;
    }
    public ServletOutputStream getOutputStream() throws IOException {
        // what do I do?
    }
    // other methods overridden
}
我如何最简单地返回一个输出到
Writer
pw
OutputStream
?我不希望为此包含额外的
.jar
文件,但如果这样做的话,我愿意包含额外的
.java
文件


您有什么建议?

您可以使用
org.apache.commons.io.output.WriterOutputStream

它有多个构造函数,例如

public WriterOutputStream(Writer writer, String charsetName)
还是更宽的

public WriterOutputStream(Writer writer, Charset charset, int bufferSize, boolean writeImmediately)
只需包装您的writer并
返回新WriterOutputStream(pw,theCharSet)

更新:如果您不想包含jar,可以查看代码(非常简单),了解主要思想并编写自己的OutputStreamWriter实现