[応用機能]I/O

アプリケーション開発において、オブジェクトの直列化/非直列化をカスタマイズしたい場合があります。

オブジェクトの直列化/非直列化を抽象化したのが、Externalizerです。

関連するパッケージは、以下です。

アプリケーション向けインタフェース Externalizer

アプリケーション向けインタフェースExternalizerを使った簡単なアプリケーションのサンプルを示します。

  1. import java.io.*;
  2. import jp.ossc.nimbus.core.ServiceManagerFactory;
  3. import jp.ossc.nimbus.service.io.Externalizer;
  4. Hoge hoge = new Hoge();
  5. ByteArrayOutputStream os = new ByteArrayOutputStream();
  6. // Externalizerを取得
  7. Externalizer externalizer = (Externalizer)ServiceManagerFactory.getServiceObject("Externalizer");
  8. // 直列化する
  9. externalizer.writeExternal(hoge, os);
  10. // 直列化したバイト配列を取得
  11. os.flush();
  12. byte[] bytes = os.getBytes();
  13. ByteArrayInputStream is = new ByteArrayInputStream(bytes);
  14. // 非直列化する
  15. hoge = (Hoge)externalizer.readExternal(is)

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.io.SerializableExternalizerServiceJava標準の直列化機構を使用する
jp.ossc.nimbus.service.io.NimbusExternalizerServiceJava標準の直列化機構を拡張したNimbus独自直列化機構を使用する
jp.ossc.nimbus.service.io.KryoExternalizerServiceKryoの直列化機構を使用する