Cómo canalizar la salida estándar desde un método maravilloso a una cadena

StackOverflow https://stackoverflow.com/questions/121665

  •  02-07-2019
  •  | 
  •  

Pregunta

¿Cómo se invoca un método maravilloso que imprime en la salida estándar y agrega la salida a una cadena?

¿Fue útil?

Solución

Esto demuestra cómo puedes hacer esto.Pegue esto en un archivo de script de Groovy y ejecútelo.Verá que la primera llamada funciona normalmente.La segunda llamada no produce resultados.Finalmente, el último paso del main imprime los resultados de la segunda llamada que fueron redirigidas a ByteArrayOutputStream.

¡Divertirse!

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()

Otros consejos

No estoy seguro de lo que quiere decir con "agregar la salida a una cadena", pero puede imprimir de forma estándar usando "imprimir" o "println".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top