我正在调用一个在控制台/标准输出中打印一些字符串的函数。我需要捕获这个字符串。我无法修改正在进行打印的函数,也无法通过继承更改运行时行为。我无法找到任何允许我执行此操作的预定义方法。
JVM 是否存储打印内容的缓冲区?
有谁知道可以帮助我的 Java 方法吗?
您可以通过调用重定向标准输出
System.setOut(myPrintStream);
或者 - 如果您需要在运行时记录它,请将输出通过管道传输到文件:
java MyApplication > log.txt
另一个技巧 - 如果您想重定向并且无法更改代码:实现一个调用您的应用程序并启动该应用程序的快速包装器:
public class RedirectingStarter {
public static void main(String[] args) {
System.setOut(new PrintStream(new File("log.txt")));
com.example.MyApplication.main(args);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)