2008-09-23 6 views

उत्तर

10

यह दर्शाता है कि आप यह कैसे कर सकते हैं। इसे एक ग्रोवी स्क्रिप्ट फ़ाइल में पेस्ट करें और इसे चलाएं। आप सामान्य कॉल कार्यों को सामान्य के रूप में देखेंगे। दूसरी कॉल कोई परिणाम नहीं पैदा करती है। आखिरकार, मुख्य प्रिंट में अंतिम चरण दूसरे कॉल के परिणाम प्रिंट करता है जिसे बाइटएरे ऑटपुटस्ट्रीम पर रीडायरेक्ट किया गया था।

मज़े करो!

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

एक आकर्षण की तरह काम किया! बहुत बहुत धन्यवाद। –

1

मुझे यकीन है कि आप "एक स्ट्रिंग के लिए उत्पादन जोड़कर" क्या मतलब है नहीं कर रहा हूँ, लेकिन आप "प्रिंट" या "println" का उपयोग कर बाहर मानक प्रिंट कर सकेंगे।

संबंधित मुद्दे