我的 LibgGDX 游戏中有一个很长的 BooleanArray
,为了将其保存在我的 Preferences
中,我这样做:
static Preferences prefs;
public static void putMyArray (BooleanArray booleanArray, String string){
for(int i=0; i < booleanArray.size;i++){
prefs.putBoolean( string+i, booleanArray.get(i));
}
}
此方法适用于小型数组,但对于我的情况,大小为 100+。
请帮忙,还有其他办法吗?
最佳答案
如果你想要它 super 紧凑,你可以使用 Kryo 库将其转换为二进制。然后,您可以将其保存为本地文件,或者如果您使用 ByteArrayOutputStream,则将其转换为字符串首选项。
已经有一个 library with serializers for LibGDX Kryo 中的数据类。
将库添加到 build.gradle 中的核心项目中:
compile "com.cyphercove.gdx:gdxtokryo:1.1.1"
保存到文件:
kryo = new Kryo();
kryo.setRegistrationRequired(true);
GdxToKryo.registerGroup(kryo, 0);
Output output = new Output(Gdx.files.local("mySave.bin").write(false));
kryo.writeObject(output, myBooleanArray);
output.close();
读取数据:
kryo = new Kryo();
kryo.setRegistrationRequired(true);
GdxToKryo.registerGroup(kryo, 0);
Input input = new Input(Gdx.files.local("mySave.bin").read());
BooleanArray myBooleanArray = kryo.readObject(input, BooleanArray.class);
input.close();
关于java - 将 BooleanArray 保存在 LibgGDX 首选项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059055/