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;
}

我尝试了什么:

添加等待条件为 2 秒 10 次...有没有更清洁的方法。

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

1 回答 1

0

Java 提供了一个名为 Externalizable 的 API,它允许您自定义(反)序列化。Serialiazable 是标记接口,表示可以将对象写入输出流。Externalizable 提供了两个方法 readExternal() 和 writeExternal() ,您可以在其中覆盖行为。

您的问题对您想要实现的目标不是很清楚,所以我不确定以上信息是否对您有帮助

于 2012-10-08T17:13:54.070 回答