Сохраненный объект не читается с SD-карты - PullRequest
0 голосов
/ 13 августа 2011

Итак, в Android-игре (использующей andEngine), которую я создаю, я пытаюсь сохранить карту TMXtiled как объект и вызвать ее позже, чтобы сэкономить время загрузки. Мне удалось получить файлы на SD-карте, но у меня возникли проблемы при попытке чтения с SD-карты. Это код, который я использовал для записи файла:

File root = Environment.getExternalStorageDirectory();
FileOutputStream fos = new FileOutputStream(root + "/fileTest");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tmxLoader.loadFromAsset(mContext, "tmx/test.tmx"));
oos.close();

Затем я использую это, чтобы прочитать файл с SD-карты:

FileInputStream in = new FileInputStream(root + "/fileTest"); 
ObjectInputStream os = new ObjectInputStream(in); 
mTMXTiledMap = (TMXTiledMap) os.readObject();
os.close();

Ошибка, которую я получаю, - исключение нулевого указателя, из-за чего я поверил, что файл не читается. Я тестировал этот метод в Java, прежде чем использовать его в Android, и он работает, однако я использовал строки. Что-то не так с кодом выше? Также есть лучший способ для хранения этих больших объектов? Еще одна вещь, которую я заметил, заключалась в том, что размер файла на SD-карте составлял около 3 КБ, но я видел, что TiledMap занимал намного больше места при использовании DDMS, так значит ли это, что файлы записываются не полностью?

1 Ответ

1 голос
/ 13 августа 2011

да, я думаю, что вы не указали полный путь, то есть с расширением

FileInputStream in = new FileInputStream(root + "/test.tmx");

надеюсь, что это решит вашу проблему

...