我已经用这种方式序列化了一个巨大的链表(150mb):
public void serialize(ArrayList<LinkedList> e, String file){
try {
FileOutputStream fileOut =
new FileOutputStream("file+".ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
}catch(IOException i)
{
i.printStackTrace();
}
}
现在,我想以非阻塞方式将其作为流读取,与以下方法相反:
public ArrayList deserialize(File file){
ArrayList<LinkedList> e = null;
try
{
FileInputStream fileIn = new FileInputStream(file);
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (ArrayList<LinkedList>) in.readObject();
in.close();
fileIn.close();
return e;
}catch(IOException i)
{
i.printStackTrace();
return null;
}catch(ClassNotFoundException c)
{
System.out.println("Object not found");
c.printStackTrace();
return null;
}
}
在反序列化过程仍在运行但尚未完成的情况下,是否可以使用部分反序列化数据?
答案 0 :(得分:2)
你做不到。没有来自文件的非阻塞I / O这样的东西。你的问题没有意义。