Libgdx序列化

3

我正在尝试在Android上反序列化我的游戏数据。我在资产文件夹中有gamadata.dat文件,但是我一直遇到FileNotFoundException错误。

FileHandle fl = Gdx.files.internal("gamedata.dat");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fl.file()));

AllData data = (AllData) in.readObject();
in.close();

那么我为什么会遇到这个异常呢?

祝好。


你使用Eclipse吗?你在Eclipse中检查了资产文件夹以确保它存在吗?否则,您可能需要在Eclipse中刷新文件夹。 - noone
是的,我确实使用Eclipse,它在资产文件夹中,但仍然找不到。 - Suwer
我认为这应该可行... 你在Android上得到了异常吗?桌面端?还是两者都有? - noone
在桌面上一切正常。只有 Android 版本出现故障。 - Suwer
在这种情况下,我建议您解压.apk文件,并确保文件确实被打包在其中。 - noone
我想我找到了问题所在:http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/files/FileHandle.html#file%28%29 - noone
1个回答

2
JavaDoc 中指出,FileHandle.file() 不能与内部的 FileHandles 一起使用。
请尝试使用以下方法代替:
FileHandle fl = Gdx.files.internal("gamedata.dat");
ObjectInputStream in = new ObjectInputStream(fl.read());

AllData data = (AllData) in.readObject();
in.close();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接