将stdout重定向到Java中的字符串

时间:2010-11-15 10:24:41

标签: java stdout

我知道如何将stdout重定向到文件,但我不知道如何将它重定向到字符串。

1 个答案:

答案 0 :(得分:54)

是的 - 您可以使用ByteArrayOutputStream

ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));

然后您可以使用baos.toString()获取字符串。

要指定编码(而不是依赖于平台定义的编码),请使用PrintStream(stream, autoFlush, encoding)构造函数和baos.toString(encoding)

如果要恢复原始流,请使用:

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));