Javaでバイト配列の内容を出力(hex dump)したいなーと思って、そういうメソッドが無いかjavadocを調べたんだけど見当たらない。
自分で作るのは簡単だけど、面倒は面倒だし。
と思っていたら、暗号を試している最中にCipher#getParameters()をSystem.out.println()で出力したときにIVの値がヘキサダンプされているのに気付いた。
これはどうやってるんだろう?と思って調べたら、HexDumpEncoderというクラスを使っていた。これが正に探していたものだ!(嬉)
ついでに、ByteArrayInputStreamとByteArrayOutputStreamについてもメモ。
Javaでは部分配列を使うのはC言語に比べて面倒(新しい配列を作ってコピーするしかないので効率悪すぎ)だけど、見た目はこれらのクラスを使うことですっきりする。
FileInputStream・FileOutputStreamにも簡単に置き換えられる(というかポリモルフィズムでそのまま使える)ので綺麗。
とは言え、実行効率がよくなるわけではないよなー…。