如何从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()
这样的东西,但这段代码只会在我的梦中成真。
代码示例将不胜感激。
答案 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
尝试阅读超过结束时它肯定会抛出异常文件。