كيفية الأنابيب المعياري من رائع الأسلوب في سلسلة

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

  •  02-07-2019
  •  | 
  •  

سؤال

كيف تحتج رائع الأسلوب الذي يطبع stdout إلحاق الإخراج إلى سلسلة ؟

هل كانت مفيدة؟

المحلول

يوضح هذا كيف يمكنك أن تفعل هذا.لصق هذا رائع النصي الملف وتشغيله.سوف نرى أول استدعاء وظائف كالمعتاد.الدعوة الثانية تنتج أي نتائج.وأخيرا ، فإن الخطوة الأخيرة في أهم المطبوعات نتائج الدعوة الثانية التي تم إعادة توجيهها إلى ByteArrayOutputStream.

وقد متعة!

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

نصائح أخرى

لست متأكدا ماذا تقصد ب "إلحاق الإخراج إلى سلسلة" ولكن يمكنك طباعة القياسية باستخدام "طباعة" أو "println".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top