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

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

2 ответов


это демонстрирует, как вы можете это сделать. Вставьте это в файл скрипта Groovy и запустите его. Вы увидите функции первого вызова как обычно. Второй звонок не дает результатов. Наконец, последний шаг в main печатает результаты второго вызова, которые были перенаправлены на 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()

Я не уверен, что вы подразумеваете под "добавлением вывода в строку", но вы можете распечатать стандарт с помощью "print" или "println".