Я пытаюсь перенаправить System.out в строку, используя System.setOut, которая берет PrintStream. Есть ли способ конвертировать StringWriter в поток, чтобы я мог передать его в setOut?
Преобразовать StreamWriter в OutputStream в java?
Ответ 1
Вы не можете сделать это точно, так как 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();