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

Fen*_* Li 28 java stdout

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

Boz*_*zho 55

是的 - 您可以使用ByteArrayOutputStream:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));
Run Code Online (Sandbox Code Playgroud)

然后你可以得到字符串baos.toString().

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

如果要还原为原始流,请使用:

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
Run Code Online (Sandbox Code Playgroud)