Преобразовать StreamWriter в OutputStream в java?

Я пытаюсь перенаправить System.out в строку, используя System.setOut, которая берет PrintStream. Есть ли способ конвертировать StringWriter в stream, чтобы я мог передать его в setOut?

Вы не можете этого сделать точно, поскольку StringWriter – это Writer , а не Stream . Но вы можете это сделать:

 // 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();