2

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

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

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
4

2 回答 2

13

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

于 2013-08-30T03:23:36.110 回答
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

于 2013-08-30T03:30:55.337 回答