一尘不染

Java:将PrintStream转换为String?

java

我有一个函数,该函数接受某种类型的对象PrintStream并向其打印,并输出该对象的表示。如何在字符串中捕获此函数的输出?具体来说,我想将其用作toString方法。


阅读 604

收藏
2020-12-03

共1个答案

一尘不染

使用a
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);
2020-12-03