最近、JavaでBase64エンコード/デコード処理を行いたいケースがあり、
いろいろと実現を方法を探っている際に、Commons Codecについて知りました。
なので、今回はCommons Codecについて書こうと思います。
Commons Codec(以下、Codec)とは、さまざまなエンコードおよびデコード処理を実装するための
共通のインタフェースを提供するものです。
但し、いくつかの実装が既に用意されているためそれらを使用することも可能です。
Codecには、エンコーダとデコーダを実装するためのインタフェースが3種類準備されています。
・Encoder/Decoderインフェース
入出力共にObject型で実装するインタフェースです。
・BinaryEncoder/BinaryDecoderインフェース
入出力共にbyte型の配列で実装するインタフェースです。
・StringEncoder/StringDecoderインフェース
入出力共にString型で実装するインタフェースです。
いずれのインタフェースもエンコーダには、encodeメソッドが、
デコーダには、decodeメソッドが定義されています。
ちなみに、エンコーダとデコーダの2つのインタフェースを実装したクラスを作成すれば、
エンコード、デコードの両方の機能を提供するクラスとなります。
あらかじめ、Codecに準備されている実装は以下のようなものがあります。
・Base64:Base64エンコード/デコード処理を行います。
・Hex:テキスト形式の16進と、バイナリを相互に変換する処理を行います。
・URLCodec:HTML4.01に定義されたURLのエンコード/デコード処理を行います。
etc
参考:Commons Codec
http://commons.apache.org/codec/