ByteArrayOutputStream クラスの toString() メソッド
Object.toString() メソッドは、デバッグ出力などのときに役立てる、くらいの意識しかなかったのでまったく気にしていなかったのだが、java.io.ByteArrayOutputStream クラスの toString() メソッドはオーバーライドされている。
で、何が返ってくるのかと思ってソースを見てみると、以下のような感じ。
public String toString() { return new String(buf, 0, count); }
ついでに言うと、以下のメソッドも提供されている。
public String toString(String enc) throws UnsupportedEncodingException { return new String(buf, 0, count, enc); }
最初、「java.io.ByteArrayOutputStream@86f241」みたいな文字列が出力されることを期待して何も考えずに標準出力に出そうとしたのだが、8MB くらいのデータが押し込まれたストリームだったので、実行したときに一瞬何が起こったのかがわからなかった、という‥