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

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

是的 – 您可以使用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)));