Cómo pasar el stdout de un método groovy a una cuerda
stderr linux (2)
¿Cómo se puede invocar un método maravilloso que imprime a stdout, añadiendo el resultado a una cadena?
Esto demuestra cómo puedes hacer esto. Pegue esto en un archivo de script Groovy y ejecútelo. Verá las primeras funciones de llamada como normales. La segunda llamada no produce resultados. Finalmente, el último paso en la parte principal imprime los resultados de la segunda llamada que fueron redirigidos a ByteArrayOutputStream.
¡Que te diviertas!
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()
No estoy seguro de lo que quiere decir con "agregar el resultado a una cadena", pero puede imprimir a la salida estándar usando "imprimir" o "imprimir".