Как передать стандартный вывод из шпунтового метода в строку - PullRequest
8 голосов
/ 23 сентября 2008

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

Ответы [ 2 ]

11 голосов
/ 23 сентября 2008

Это демонстрирует, как вы можете сделать это. Вставьте это в файл сценария 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()
1 голос
/ 13 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...