我有一个包含多个序列化对象的文件,想反序列化并将它们存储在数组列表中。为此,我需要知道对象输入流何时耗尽对象/文件输入流已达到EOF。有什么办法吗?
public ArrayList<Object> retriveAllObjects(String file) throws IOException, ClassNotFoundException {
FileInputStream f = new FileInputStream(file);
ObjectInputStream obj = new ObjectInputStream(f);
ArrayList<Object> array=new ArrayList<>();
while(obj!= null){ /////////////java.io.EOFException
array.add(obj.readObject());
}
return array;
}
obj
是我的对象输入流。 obj.available()
返回一个空数组列表。
我还尝试了try try块来处理错误。有用。但是让n异常发生不是一个坏习惯吗?