gpt4 book ai didi

java - Java 程序如何才能完全读取自己的控制台输出?

转载 作者:行者123 更新时间:2023-12-05 07:45:42 24 4
gpt4 key购买 nike

首先,我知道如果您想启动一个进程并从中获取控制台输出,您可以使用以下代码:

ProcessBuilder builder = new ProcessBuilder(command);
builder.redirectErrorStream(true);
Process proc;
proc = builder.start();
InputStreamReader isr = new InputStreamReader(proc.getInputStream());
BufferedReader reader = new BufferedReader(isr);
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}

但是,如果我想从当前运行的 Java 程序 获取整个控制台输出怎么办?是否可以在不遗漏任何内容的情况下阅读它?我确定在控制台中显示文本的程序使用 System.out.println()在某些地方,在大多数情况下,它使用许多 java.util.logging.Logger 的实例,也许还有其他地方的一些其他方法。

顺便说一句,Logger最后类简单地使用System.out打印文本还是使用任何其他特殊方法进行日志记录?

无论如何,我能以某种方式听到所有这些吗?

提前致谢

最佳答案

这可能不是您问题的完整解决方案。但这是我在某处使用过的一种解决方法。

您可以将您的程序标准输出重定向到一个文件,并且您可以从您的程序本身读取该文件,因为它已更改。

对于基于控制台的应用程序,您可以使用 - 将控制台输出重定向到文件中

java -cp temp.jar test.Main >> program.log

即使程序仍在运行,也会创建包含所有标准输出消息的 program.log 文件。

关于java - Java 程序如何才能完全读取自己的控制台输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431928/

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