Java对象序列化问题

时间:2012-10-08 16:49:12

标签: java jsp deserialization

我有一些输入,我添加到序列化对象。

现在当我读取序列化对象时,我想检查它是否存在...如果没有循环,直到它有一个值。

如何修改反序列化功能来处理它。

填充可序列化对象基本上有延迟。所以在此期间,如果我要阅读那个对象,它将是空的。我想在它有数据时才检查只读。如果不是它应该等到它有一些数据

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

1 个答案:

答案 0 :(得分:0)

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

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