我编写了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
文件。
你会推荐什么?
答案 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实现