将字节写入writer的最简单方法?

时间:2015-02-19 01:40:48

标签: java servlets stream writer

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

这是我的伪代码。

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
}

如何才能最简单地将OutputStream输出到Writer pw?我宁愿不为此添加额外的.jar文件,但如果可以这样做,我可以提供额外的.java文件。

你会推荐什么?

1 个答案:

答案 0 :(得分:0)

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

它有多个构造函数,例如

public WriterOutputStream(Writer writer, String charsetName)

或更广泛的

public WriterOutputStream(Writer writer, Charset charset, int bufferSize, boolean writeImmediately)

只需封装您的作家和return new WriterOutputStream(pw, theCharSet)

更新:如果你不想包含jar,你可以查看代码(这很简单)来获得主要想法并编写自己的OutputStreamWriter实现