I know how to redirect the stdout to a file, but I have no idea on how to redirect it to a string.
Yes - you can use a
ByteArrayOutputStream baos = new ByteArrayOutputStream(); System.setOut(new PrintStream(baos));
Then you can get the string with
To specify encoding (and not rely on the one defined by the platform), use the
PrintStream(stream, autoFlush, encoding) constructor, and
If you want to revert back to the original stream, use:
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));