如何计算存储在*.ser文件中的对象数

Moo*_*ors 5 java serialization

我正在尝试读取存储在*.ser文件中的所有对象,并将它们存储在一个对象数组中.如何获取存储在该文件中的对象数(这样我可以声明数组很number_of_objects长)?

我检查了API,但无法找到理想的功能.

-edit-
部分代码:

Ser[] objTest2 = new Ser[number_of_objects];
for(int i=0; i<=number_of_objects, i++) {
    objTest2[i] = (Ser)testOS2.readObject();
    objTest2[i].printIt(); 
}
Run Code Online (Sandbox Code Playgroud)

jjn*_*guy 4

你想看的是班级ArrayList

它基本上是一个动态增长的数组。

您可以向其中添加项目,如下所示:

ArrayList list = new ArrayList();
list.add(someObject);
list.add(anotherBoject);
Run Code Online (Sandbox Code Playgroud)

当您向其中添加新项目时,该列表将会增长。所以您不必提前知道尺寸。

如果需要取出List末尾的数组可以使用toArray()List的方法。

Object[] arr = list.toArray(new Object[list.size()]);
Run Code Online (Sandbox Code Playgroud)

编辑:
这是您需要的一般实现:

List<Ser> objTest2 = new ArrayList<Ser>();
while (testOS2.available > 0) {
    Ser toAdd = ((Ser)testOS2.readObject());
    toAdd.printIt(); 
    objTest2.add(toAdd);
}
Run Code Online (Sandbox Code Playgroud)

*我认为这不是available()一个可靠的测试来判断是否有更多字节可供读取。