gpt4 book ai didi

java - 将控制台输出重定向到Java中的字符串

转载 作者:IT老高 更新时间:2023-10-28 20:24:52 25 4
gpt4 key购买 nike

我有一种方法,它的返回类型是 void,它直接在控制台上打印。

但是我需要在字符串中输出该输出,以便我可以处理它。

由于我无法对返回类型为 void 的方法进行任何更改,因此我必须将该输出重定向到字符串。

如何在 Java 中重定向它?

最佳答案

如果函数正在打印到 System.out,您可以使用 System.setOut 方法来捕获该输出以更改 System.out 转到您提供的 PrintStream。如果您创建一个连接到 ByteArrayOutputStreamPrintStream,那么您可以将输出捕获为 String

例子:

// Create a stream to hold the output
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
// IMPORTANT: Save the old System.out!
PrintStream old = System.out;
// Tell Java to use your special stream
System.setOut(ps);
// Print some output: goes to your special stream
System.out.println("Foofoofoo!");
// Put things back
System.out.flush();
System.setOut(old);
// Show what happened
System.out.println("Here: " + baos.toString());

这个程序只打印一行:

Here: Foofoofoo!

关于java - 将控制台输出重定向到Java中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com