Groovy メソッドから stdout を文字列にパイプする方法

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

  •  02-07-2019
  •  | 
  •  

質問

標準出力に出力し、出力を文字列に追加する Groovy メソッドを呼び出すにはどうすればよいでしょうか?

役に立ちましたか?

解決

これは、これを行う方法を示しています。これを Groovy スクリプト ファイルに貼り付けて実行します。最初の呼び出しは通常どおり機能することがわかります。2 回目の呼び出しでは結果が得られません。最後に、メインの最後のステップでは、ByteArrayOutputStream にリダイレクトされた 2 番目の呼び出しの結果を出力します。

楽しむ!

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