25
我知道如何将stdout重定向到文件,但我不知道如何将其重定向到字符串。将stdout重定向到Java中的字符串
我知道如何将stdout重定向到文件,但我不知道如何将其重定向到字符串。将stdout重定向到Java中的字符串
是 - 你可以使用一个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)));