我正在尝试使用 System.setOut 将 System.out 重定向到一个字符串,该字符串需要一个 PrintStream。有什么方法可以将 StringWriter 转换为 Stream 以便我可以将其传递给 setOut?
Paul Brauner
问问题
16220 次
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 回答