В моей Android приложения, у меня есть список пользовательских объектовПроблемы записи и чтения ArrayList <Object> с FileStream в Java
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 = {"..","..",".."};
ли пользовательские классы 'реализует Serializable'? – Zircon
@ Zircon они реализуют мой интерфейс –
Но они не реализуют Serializable. Вам нужно будет это сделать. К сожалению, это не всегда самая простая вещь. Я рекомендую вам подобрать книгу «Эффективное Java: второе издание» Джошуа Блоха и прочитать его главу о правильной реализации интерфейса Serializable. После того, как вы правильно выполнили Serializable, чтение/запись ваших объектов в файловой системе будет ветерок. – nasukkin