我有一个函数,该函数接受某种类型的对象PrintStream并向其打印,并输出该对象的表示。如何在字符串中捕获此函数的输出?具体来说,我想将其用作toString方法。
PrintStream
toString
使用a ByteArrayOutputStream作为缓冲区:
ByteArrayOutputStream
import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.nio.charset.StandardCharsets; final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final String utf8 = StandardCharsets.UTF_8.name(); try (PrintStream ps = new PrintStream(baos, true, utf8)) { yourFunction(object, ps); } String data = baos.toString(utf8);