使用Java中的文件流编写和读取ArrayList <object>的问题

时间:2016-08-24 18:30:43

标签: java android objectinputstream objectoutputstream

在我的Android应用程序中,我有一个自定义对象列表

ArrayList<Poke> pcList = new ArrayList<>();

后来在我的代码中,我保存并加载了使用Java OOS和OIS运行的方法。我在其他项目中使用了这些确切的方法,并且知道它们正常工作。

我相信我在保存和加载自定义对象列表时遇到了问题。

以下是我要保存的行,以及加载我的列表。

// save
oos.writeObject(pcList);

...

// load
pcList = (ArrayList<Poke>)ois.readObject();

为什么我无法使用自定义对象列表正确加载/保存任何想法?

以下是链接一些类似对象的界面:

public interface Poke {

    int getNum();

    String getName();

    String getType();

    int getValue();

    boolean getShiny();

    String getImageName();

}

以下是其中一个类似的对象类

public class BasicPoke implements Poke {

boolean shiny = false;

Random randomInt = new Random();
int iRandom = randomInt.nextInt(34 - 1) + 1;
int iShiny = randomInt.nextInt(31 - 1) + 1;

public int getNum(){
    return this.iRandom;
}

public String getName(){
    return this.pokeNames[iRandom-1];
}

public String getType(){
    return this.pokeTypes[iRandom-1];
}

public int getValue(){
    return 1;
}

public boolean getShiny() {
    return (iShiny == 15);
}

public String getImageName() {
    String threeDigitInteger = String.format(Locale.getDefault(),"%03d",    this.getNum());
    return (this.getShiny()) ? "icon"+threeDigitInteger+"s" : "icon"+threeDigitInteger;
}

String pokeNames = {"..","..",".."};
String pokeTypes = {"..","..",".."};

1 个答案:

答案 0 :(得分:1)

请为BasicPoke类实现Serializable。顺便说一下,你能告诉我们加载/保存对象列表时的问题(例外)吗?

谢谢, Nghia酒店