1

如何从 SD 卡加载 Android 中的多个对象?

我懂了:

    ObjectInput in;
    Dog dog = null;
    try
    {
        in = new ObjectInputStream(new FileInputStream("/mnt/sdcard/somelocation/save.data"));
        dog = (Dog) in.readObject();
        in.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }

但这只会从 SD 卡加载一个对象。

我在想类似的东西ArrayList<Dog> dogs = in.readAllObjects(),但这段代码只会在我的梦想中实现。

代码示例将不胜感激。

4

1 回答 1

1

readObjects()文档:

从源流中读取下一个对象。

所以我建议使用循环来读取每只狗:

List<Dog> dogs = new ArrayList<Dog>();
Dog dog;
try {
    in = new ObjectInputStream(new FileInputStream("/mnt/sdcard/somelocation/save.data"));
    while((dog = (Dog) in.readObject()) != null)
        dogs.add(dog);
    in.close();
}
// catch the exceptions

我不知道是否dog会出现在我的脑海中,但如果尝试读取文件末尾,null它肯定会抛出异常。in

于 2012-11-28T23:51:16.807 回答