将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)));