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

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

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top