2008-09-23 6 views

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

A travaillé comme un charme! Merci beaucoup. –

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 ».

Questions connexes