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なるかどうかはわかりませんが、ファイルの終わりを超えて読み込もうとすると、間違いなく例外がスローされます。nullin

于 2012-11-28T23:51:16.807 に答える