Java:打印流到字符串?
我有一个函数,它接受某种类型的对象和要打印的 PrintStream,并输出该对象的表示形式。如何在字符串中捕获该函数的输出?具体来说,我想在 toString
方法中使用它。
I have a function that takes an object of a certain type, and a PrintStream
to which to print, and outputs a representation of that object. How can I capture this function's output in a String? Specifically, I want to use it as in a toString
method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用
ByteArrayOutputStream
作为缓冲区:Use a
ByteArrayOutputStream
as a buffer:您可以使用传递到构造函数的 ByteArrayOutputStream 构造一个 PrintStream,稍后您可以使用它来获取写入 PrintStream 的文本。
You can construct a PrintStream with a ByteArrayOutputStream passed into the constructor which you can later use to grab the text written to the PrintStream.
为什么不将 StringWriter 与 PrintWriter 一起使用?
Why don't you use a StringWriter with a PrintWriter?
该答案是之前答案的统一,适用于 Java 1.7 及更高版本。另外,我添加了代码来关闭流。
A unification of previous answers, this answer works with Java 1.7 and after. Also, I added code to close the Streams.
也许这个问题可能会对您有所帮助:
将OutputStream放入字符串
中
Maybe this question might help you:
Get an OutputStream into a String
Subclass OutputStream and wrap it in PrintStream
定义并初始化名为 inSS 的 Scanner 变量,该变量使用字符串变量 myStrLine 创建输入字符串流。
答:
扫描仪 inSS = new Scanner(myStrLine);
Define and initialize a Scanner variable named inSS that creates an input string stream using the String variable myStrLine.
Ans:
Scanner inSS = new Scanner(myStrLine);