Преобразовать StreamWriter в OutputStream в Java? - PullRequest
11 голосов
/ 19 февраля 2009

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

1 Ответ

25 голосов
/ 19 февраля 2009

Вы не можете сделать это точно, так как 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();
...