Отказ от ответственности: я просмотрел много примеров и прочитал документы.
Этот вопрос включает в себя 3 класса.Мой сериализованный класс, вспомогательный класс, который обрабатывает ввод-вывод, и действие для взаимодействия.
Мой сериализованный класс выглядит примерно так:
public class EntityPlayer implements Serializable {
private static final long serialVersionUID = -7671612522335708108L;
String name = "foo";
public EntityPlayer() {
name = "foo";
}
}
MyВспомогательный класс выглядит следующим образом (здесь выполняется тяжелый подъем):
public class Main {
static Object loadPlayer(Context c, String name) throws IOException,
ClassNotFoundException {
FileInputStream f = c.openFileInput(name);
ObjectInputStream i = new ObjectInputStream(f);
Object player = i.readObject();
i.close();
return player;
}
static void savePlayer(Context c, String name, EntityPlayer player) throws IOException {
FileOutputStream f = c.openFileOutput(name, Context.MODE_PRIVATE);
ObjectOutputStream o = new ObjectOutputStream(f);
o.writeObject(player);
o.flush();
o.close();
}
}
и, наконец, вот как я получаю доступ (в скорлупе ореха):
public class DisplayInteract extends Activity implements OnClickListener {
EntityPlayer player = new EntityPlayer(); //by editing this line, my issue was fixed
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.g_interact);
player = new EntityPlayer(ID, this);
try {
Main.savePlayer(player.name, player);
} catch (IOException e) {
}
try {
player = (EntityPlayer) Main.loadPlayer("Derp");
} catch (ClassNotFoundException e) {
} catch (IOException e) {
}
}
}
По сути, я получаю NPE, когда я делаю какие-либо вызовы относительно сериализованного класса после его загрузки.Я знаю, что проблема заключается в том, что я сохраняю файл, потому что я могу сказать, что в Eclipse нет файлового обозревателя через Android.Я знаю, что проблема также в том, как я загружаю файл, потому что (у меня нет идеального, как), я заставил его работать в один момент (он создал файл), но я все еще не мог получить доступ к любым данным без его выбросаNPE (потому что я не обращался к классу правильно)