【问题标题】:Simplest way to write bytes to a writer?将字节写入作家的最简单方法?
【发布时间】:2015-02-19 01:40:47
【问题描述】:

我已经编写了HttpServletResponse 的实现,并且我正在覆盖需要返回ServletOutputStream 的方法getOutputStream。写入所述流的数据必须使用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
}

我怎样才能最简单地返回一个输出到Writer pwOutputStream?我宁愿不为此包含额外的 .jar 文件,但如果这样做的话,我愿意包含额外的 .java 文件。

你会推荐什么?

【问题讨论】:

    标签: java servlets stream writer


    【解决方案1】:

    您可以使用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 实现

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 1970-01-01
      • 2011-10-03
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多