<p>What's the best way to pipe the output from an java.io.OutputStream to a String in Java?</p>

<p>Say I have the method:</p>

<pre><code>  writeToStream(Object o, OutputStream out)
</code></pre>

<p>Which writes certain data from the object to the given stream. However, I want to get this output into a String as easily as possible.</p>

<p>I'm considering writing a class like this (untested):</p>

<pre><code>class StringOutputStream extends OutputStream {

  StringBuilder mBuf;

  public void write(int byte) throws IOException {
    mBuf.append((char) byte);
  }

  public String getString() {
    return mBuf.toString();
  }
}
</code></pre>

<p>But is there a better way? I only want to run a test!</p>

I would use a
```
ByteArrayOutputStream
```
. And on finish you can call:
```
```
new String( baos.toByteArray(), codepage );
```
```
or better:
```
```
baos.toString( codepage );
```
```
For the
```
String
```
constructor, the
```
codepage
```
can be a
```
String
```
or an instance of
java.nio.charset.Charset
. A possible value is
java.nio.charset.StandardCharsets.UTF_8
.
The method
```
toString()
```
accepts only a
```
String
```
as a
```
codepage
```
parameter (stand Java 8).