patternjavaCritical
Get an OutputStream into a String
Viewed 0 times
stringoutputstreamintoget
Problem
What's the best way to pipe the output from an java.io.OutputStream to a String in Java?
Say I have the method:
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):
But is there a better way? I only want to run a test!
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!
Solution
I would use a
or better:
For the
The method
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).Code Snippets
new String( baos.toByteArray(), codepage );baos.toString( codepage );Context
Stack Overflow Q#216894, score: 706
Revisions (0)
No revisions yet.