如何在Android中从SD卡获取多个对象?

时间:2012-11-28 23:39:08

标签: android object load sd-card

如何从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()这样的东西,但这段代码只会在我的梦中成真。

代码示例将不胜感激。

1 个答案:

答案 0 :(得分:1)

来自readObjects()文档:

  

从源流中读取 next 对象。

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

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尝试阅读超过结束时它肯定会抛出异常文件。