我想这个问题已经得到了回答,但我似乎找不到。
我有一个实例方法,它将一些内容写入输出流
writeTo(OutputStream){
//class specific logic
}
我希望它将这些内容放入StringBuilder中。我可以通过一个临时文件来做这件事,但这似乎不对。我想做一些类似的事情:
Stringbuilder sb = /* */;
OutputStream os = outForStringBuilder(sb);//not sure how to do this
instance.writeTo(os); //This should write the contents to Stringbuilder
使用ByteArrayOutputStream,然后调用toString(charSet)-不需要StringBuilder。
因此,您希望写入流的输出转到StringBuffer。我假设您这样做是因为在其他地方需要OutputStream。您可以使用ByteArrayOutputStream,但如果您想保留StringBuffer行为,您可以简单地将StringBuffer封装在OutputStream的子类中,如下代码所示:
http://geronimo.apache.org/maven/specs/geronimo-javamail_1.4_spec/1.6/apidocs/src-html/org/apache/geronimo/mail/util/StringBufferOutputStream.html#line.31