我想用ObjectOutputStream
在我的Libgdx游戏中保存我的设置。这适用于桌面。
但是当我运行Android应用程序时它崩溃了,因为:
02-19 12:36:33.500:W / System.err(20329):java.io.FileNotFoundException:/save.data:open failed:ENOENT(没有这样的文件或目录)
如何将它保存到assets文件夹中的android包中?
我的代码是:
public void saveSettingsOut(){
try{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data/save.set"));
out.writeObject(settingsMap);
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
请不要建议我使用偏好设置,因为我希望编码数据。
或者有更好的方法可以做到这一点吗?我想保存两个带有整数的哈希映射和一个带有布尔值的哈希映射。
答案 0 :(得分:0)
在Android上运行时,应用程序的工作目录中不存在“data”目录。在Libgdx应用程序的桌面和Android(以及iOS和GWT)版本中,文件系统布局非常不同。您应该使用Libgdx API来获取存储系统的正确部分。请参阅Libgdx本地文件处理矩阵:https://github.com/libgdx/libgdx/wiki/File-handling#file-storage-types
您想要Libgdx“本地”文件存储,因此请尝试使用:
new FileOutputStream(Gdx.files.local("save.set"))