将字节写入写入器的最简单方法?
Simplest way to write bytes to a writer?
我已经编写了 HttpServletResponse
的实现,并且我正在覆盖一个需要 return 和 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
}
我怎样才能最简单地 return 输出到 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)
只需包裹您的作家和return new WriterOutputStream(pw, theCharSet)
更新:如果您不想包含 jar,您可以查看代码(相当简单)以获得主要思想并编写自己的 OutputStreamWriter 实现
我已经编写了 HttpServletResponse
的实现,并且我正在覆盖一个需要 return 和 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
}
我怎样才能最简单地 return 输出到 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)
只需包裹您的作家和return new WriterOutputStream(pw, theCharSet)
更新:如果您不想包含 jar,您可以查看代码(相当简单)以获得主要思想并编写自己的 OutputStreamWriter 实现