通过StringBuilder输出流

时间:2013-08-30 03:21:14

标签: java stream

我认为这已经得到了回答,但我似乎无法找到它。

我有一个实例方法,它将一些内容写入输出流

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

2 个答案:

答案 0 :(得分:12)

使用ByteArrayOutputStream然后调用toString(charSet) - 不需要StringBuilder。

答案 1 :(得分:2)

因此,您希望写入流的输出转而使用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