GET AN OUTPUTSTREAM INTO A STRING

Ashish Pandey

Total Post:128

Points:898
Posted by  Ashish Pandey
Java  String 
 875  View(s)
Ratings:
Rate this:
What's the best way to pipe the output from an java.io.OutputStream to a String in Java?

Say I have the method:

  writeToStream(Object o, OutputStream out)
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.

I'm considering writing a class like this (untested):

class StringOutputStream extends OutputStream {
  StringBuilder mBuf;
  public void write(int byte) throws IOException {
    mBuf.append((char) byte);
  }
  public String getString() {
    return mBuf.toString();
  }
}
But is there a better way? I only want to run a test!
  1. Mayank Tripathi

    Post:397

    Points:3117
    Re: Get an OutputStream into a String

    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 accept only a String as codepage parameter (stand Java 8).

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!