tags:

views:

1772

answers:

1

I am trying to redirect System.out into a String using System.setOut, which takes a PrintStream. Is there any way to convert a StringWriter into a Stream so that I can pass it to setOut?

+10  A: 

You can't do that exactly, since StringWriter is a Writer, not a Stream. But you can do this:

// create a ByteArray stream, which will be wrapped by a PrintStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
System.setOut(ps);

// print whatever you got
String result = baos.toString();
Yuval A
+1 - plus deleted my duplicate post
toolkit