首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PrintStream to String?

PrintStream to String?
EN

Stack Overflow用户
提问于 2009-11-19 11:18:54
回答 6查看 90.2K关注 0票数 125

我有一个函数,它接受某种类型的对象和要打印到的PrintStream,并输出该对象的表示。如何在字符串中捕获此函数的输出?具体地说,我想像在toString方法中一样使用它。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-19 11:22:00

使用ByteArrayOutputStream作为缓冲区:

代码语言:javascript
复制
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);
票数 204
EN

Stack Overflow用户

发布于 2009-11-19 11:23:05

您可以使用传入构造函数的ByteArrayOutputStream来构造PrintStream,稍后可以使用该构造函数获取写入PrintStream的文本。

代码语言:javascript
复制
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
票数 35
EN

Stack Overflow用户

发布于 2011-10-22 01:31:09

为什么不把StringWriter和PrintWriter一起使用呢?

代码语言:javascript
复制
StringWriter writer = new StringWriter();
PrintWriter out = new PrintWriter(writer);
out.println("Hello World!");
String output = writer.toString();
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1760654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档