Comment invoquer une méthode groovy qui imprime à stdout, en ajoutant la sortie à une chaîne?Comment canaliser stdout à partir d'une méthode groovy dans une chaîne
8
A
Répondre
10
Cela montre comment vous pouvez faire cela. Collez ceci dans un fichier de script Groovy et exécutez-le. Vous verrez les fonctions du premier appel comme normales. Le second appel ne produit aucun résultat. Enfin, la dernière étape de l'impression principale les résultats du deuxième appel qui ont été redirigés vers un ByteArrayOutputStream.
Amusez-vous!
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()
1
Je ne suis pas sûr de ce que vous entendez par « concaténation de la sortie à une chaîne », mais vous pouvez imprimer à la norme à l'aide de « print » ou « println ».
A travaillé comme un charme! Merci beaucoup. –