0

シリアル化されたオブジェクトに追加する入力があります。

シリアル化されたオブジェクトを読み取るときに、それが存在するかどうかを確認したい...そうでない場合は、値が含まれるまでループします。

それを処理するために逆シリアル化関数を変更するにはどうすればよいですか。

基本的に、シリアライズ可能なオブジェクトの作成に遅延があります。そのため、その間にそのオブジェクトを読み取った場合、それは空になります。データが入っている時だけ読むにチェックを入れたい。そうでない場合は、データが得られるまで待つ必要があります

public String _displayResults(){
String  SomeData = "";
try {
    FileInputStream fis = new FileInputStream("SomeDataobj");
    ObjectInputStream ois = new ObjectInputStream(fis);
    SomeData = (String)ois.readObject();
    ois.close();
}
catch(Exception e) {
    System.out.println("Exception during deserialization: ");
}
return SomeData;
}

私が試したこと:

10回2秒の待機条件を追加しました...もっときれいな方法はありますか。

    while ( ois.readObject().toString().equalsIgnoreCase("") && i <10){
        Thread.sleep(2000);
        i++;
    }
4

1 に答える 1

0

Java は、(de) シリアル化をカスタマイズできるようにする Externalizable という API を提供します。Serialiazable はマーカー インターフェイスであり、オブジェクトを出力ストリームに書き込むことができることを示します。Externalizable は、動作をオーバーライドできる 2 つのメソッド readExternal() および writeExternal() を提供します。

あなたの質問はあなたが達成したいことについてあまり明確ではないので、上記の情報があなたに役立つかどうかわかりません

于 2012-10-08T17:13:54.070 に答える