13

我正在尝试使用 System.setOut 将 System.out 重定向到一个字符串,该字符串需要一个 PrintStream。有什么方法可以将 StringWriter 转换为 Stream 以便我可以将其传递给 setOut?

4

1 回答 1

27

你不能完全做到这一点,因为StringWriter是 a Writer,而不是 a 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();
于 2009-02-19T14:29:59.770 回答