gpt4 book ai didi

java - 在 Java 中捕获屏幕打印

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:36 24 4
gpt4 key购买 nike

我正在使用的一个类有一个 display() 函数,可以将一些信息打印到屏幕上。我不允许更改它。有没有办法从外部“捕获”它打印到屏幕上的字符串?

它显示在控制台上。

最佳答案

我能想到的最接近的事情是捕获并转发通过 System.out 打印的所有内容。

看看 setOut(java.io.PrintStream)方法。

一个完整的例子是:

import java.io.PrintStream;

public class Test {

public static void display() {
System.out.println("Displaying!");
}

public static void main(String... args) throws Exception {
final List<String> outputLog = new ArrayList<String>();
System.setOut(new PrintStream(System.out) {
public void println(String x) {
super.println(x);
outputLog.add(x);
}

// to "log" printf calls:
public PrintStream printf(String format, Object... args) {
outputLog.add(String.format(format, args));
return this;
}
});

display();
}
}

关于java - 在 Java 中捕获屏幕打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883047/

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