Como stdout tubo a partir de um método Groovy em uma string
-
02-07-2019 - |
Pergunta
Como se invocar um método Groovy que imprime em stdout, anexando a saída para uma string?
Solução
Isso demonstra como você pode fazer isso. Cole isto em um arquivo de script Groovy e executá-lo. Você vai ver as primeiras funções de chamada como normal. A segunda chamada não produz nenhum resultado. Finalmente, o último passo nos principais imprime os resultados da segunda chamada que foram redirecionados para um ByteArrayOutputStream.
Divirta-se!
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()
Outras dicas
Eu não tenho certeza que você entende por "anexar a saída para um string", mas você pode imprimir para a saída padrão usando "print" ou "println".
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow