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实现