保存的对象无法从SD卡读取

时间:2011-08-13 16:57:29

标签: java android file-io sd-card andengine

所以在一个安卓游戏(使用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卡上的文件大约是3KB,但我看到TiledMap通过使用DDMS占用了更多的空间,那么这是否意味着文件没有完全写入?

1 个答案:

答案 0 :(得分:1)

你认为你没有给出完整的路径,即扩展为

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

希望这能解决您的问题