如何将groovy方法中的stdout传送到字符串中

时间:2020-03-06 14:36:17  来源:igfitidea点击:

如何调用打印到stdout的常规方法,将输出添加到字符串?

解决方案

这演示了如何执行此操作。将其粘贴到Groovy脚本文件中并运行它。我们将看到第一个调用功能正常。第二次调用没有结果。最后,main的最后一步将打印第二个调用的结果,该结果被重定向到ByteArrayOutputStream。

玩得开心!

void doSomething() {
  println "i did something"
}

println "normal call\n---------------"
doSomething()
println ""

def buf = new ByteArrayOutputStream()
def newOut = new PrintStream(buf)
def saveOut = System.out

println "redirected call\n---------------"
System.out = newOut
doSomething()
System.out = saveOut
println ""

println "results of call\n---------------"
println buf.toString()

我不确定"将输出添加到字符串"是什么意思,但是可以使用" print"或者" println"将其打印为标准输出。