Как передать стандартный вывод из метода groovy в строку

#groovy

Вопрос:

Как вызвать метод groovy, который выводит в stdout, добавляя вывод в строку?

Ответ №1:

Это демонстрирует, как вы можете это сделать. Вставьте это в отличный файл сценария и запустите его. Вы увидите, что функции первого вызова работают в обычном режиме. Второй вызов не дает никаких результатов. Наконец, последний шаг в главном выводит результаты второго вызова, которые были перенаправлены в поток bytearrayoutput.

Получайте удовольствие!

 void doSomething() {
  println "i did something"
}

println "normal calln---------------"
doSomething()
println ""

def buf = new ByteArrayOutputStream()
def newOut = new PrintStream(buf)
def saveOut = System.out

println "redirected calln---------------"
System.out = newOut
doSomething()
System.out = saveOut
println ""

println "results of calln---------------"
println buf.toString()
 

Ответ №2:

Я не уверен, что вы подразумеваете под «добавлением вывода в строку», но вы можете распечатать по стандарту, используя «печать» или «println».