入出力操作

Rogue Wave® JViews ライブラリーでは、グラフィック・オブジェクトをストリームに保存し、グラフィック・オブジェクトをストリームから読み込むために次の 2 つのクラスを提供しています。
  • IlvOutputStream は、クラス IlvManager に使用され、このクラスが含むすべてのグラフィック・オブジェクトを保存します。
  • IlvInputStream は、IlvOutputStream が生成したファイルを IlvManager に読み込めるようにします。
グラフィック・オブジェクトは、次の IlvGraphic クラスの write メソッドを継承するため、常に IlvOutputStream に書き込まれます。
public void write(IlvOutputStream stream) throws IOException  
クラスに含まれる情報を保存するために、このメソッドをオーバーライドしてクラス IlvOutputStream のメソッドを使用することができます。このメソッドをオーバーライドするときは、スーパークラスの write メソッドを呼び出して、そのスーパークラスに関連する情報を保存することを忘れないようにしてください。次の例に近いものが得られます。
public void write(IlvOutputStream stream) throws IOException 
{
  // write fields of super class
  super.write(stream);
  // write fields of my class
  stream.write("color", getColor());
  stream.write("thickness", getThickness());
  ....
}
IlvInputStream からグラフィック・オブジェクトを読み込むには、IlvInputStream でコンストラクターを作成する必要があります。write メソッドをオーバーライドしていない場合でも、このコンストラクターは必須です。クラス IlvGraphic の対応するコンストラクターは次のとおりです。
public IlvGraphic(IlvInputStream stream) throws IlvReadFileException  
MyClass がクラス名の場合は、新規コンストラクターは次のようになります。
public MyClass(IlvInputStream stream) throws IlvReadFileException
このコンストラクターの本文では、まずスーパークラスの対応するコンストラクターを呼び出してから、write メソッドに保存した情報を読み込みます。上記の例では、対応するコンストラクターは次のようになります。
public MyClass(IlvInputStream stream) throws IlvReadFileException 
{
  super(stream); 
  setColor(stream.readColor("color")); 
  setThickness(stream.readInt("thickness")); 
  ...
}
重要
IlvManager オブジェクトをシリアライゼーションする推奨方法は IVL を介したシリアライゼーションで、Java によるシリアライゼーションではありません。クラス・マネージャーは、シリアライゼーションできない Java SE オブジェクトを内部管理するため、シリアライゼーションは IlvIcon やその他のクラスなどのグラフィック・オブジェクトを含むマネージャーに対しては機能しません。