我有一些输入,我添加到序列化对象。
现在当我读取序列化对象时,我想检查它是否存在...如果没有循环,直到它有一个值。
如何修改反序列化功能来处理它。
填充可序列化对象基本上有延迟。所以在此期间,如果我要阅读那个对象,它将是空的。我想在它有数据时才检查只读。如果不是它应该等到它有一些数据
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++;
}
答案 0 :(得分:0)
Java提供了一个名为Externalizable的API,它允许您自定义(反)序列化。 Serialiazable是标记接口,表示可以将对象写入输出流。 Externalizable提供了两个方法readExternal()和writeExternal(),您可以在其中覆盖行为。
您的问题不是很清楚您想要实现的目标,所以我不确定以上信息是否对您有所帮助