groovyのleftShift(<<)で文字コードを指定する

前置き

私はGroovyをプロダクトに使えるような感じではないので、ちょっとしたツール作成やら、ちょっとした作業を自動化する時に主に使っています。
こういう用途だとファイルに出力することが結構多いので、「<<」を多用している訳です。

new File("c:\\work\\output.txt") << "あうとぷっと"

通常はこれで問題ないのですが、文字コードを指定できないのでちょっと困りました。
とは言っても↓のようにsetTextメソッドを使用すれば指定できるのですが、折角なので「<<」でできないか調べてみました。

new File("c:\\work\\output.txt").setText("あうとぷっと", "UTF-8")

本題

「<<」はleftShift(Object)メソッドのショートカットなので、これをオーバーライドすればよいと。
ってことでこんなんになりました。

def path = "C:\\work\\output.txt"

def output = new File(path)
output.metaClass.leftShift = {Object text -> 
  delegate.append(text, "UTF-8");
}

output << "あうとぷっと"

その他

metaClassとdelegateの簡単な勉強になったかな。

metaClassとかかなり便利なのはわかってるんだけど、用途が用途なので殆ど使う事もないんですよね。
使わないと覚えないし、いざ必要な時に出てきませんし。