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?
Asked
Active
Viewed 1.7k times
1 Answers
27
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 Adam
- 161,610
- 92
- 305
- 395