如何提取发送到PrintStream的内容?

Pau*_*ams 1 java

我使用具有以下方法的第三方类:

public void print(PrintStream s);
Run Code Online (Sandbox Code Playgroud)

但我想要做的是实际记录输出.就像是:

RecordingPrintStream p = new RecordingPrintStream
instance.print(p);
logger.log(p.getContents());
Run Code Online (Sandbox Code Playgroud)

那么我可以用什么作为我的RecordingPrintStream呢?

unb*_*eli 5

就像是:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream recordingStream = new PrintStream(baos);
instance.print(recordingStream);
logger.log(baos.toString());
Run Code Online (Sandbox Code Playgroud)