我为游戏创建了一个简单的地图创建器,我想创建一个保存按钮,将永久保存游戏文件中所有级别的信息(所以当他们退出应用程序时,级别仍将存在),我尝试将所有信息保存在文本文件中,但我无法理解它是如何工作的以及如何使用FileOutputStream
以及如何在文本文件中加载。是否有更简单的方法来保存级别或更多建议的方式?谁能解释我如何保存文本文件并加载它?谢谢!
答案 0 :(得分:0)
SQL Lite数据库肯定是您要使用的,如果您将数据保存在数据库中,您将(以后如果您正在增强您的appp)可以轻松地将已保存的信息与服务器同步,以便游戏状态可以在不使用数据库的情况下与其他设备同步,只需使用SharedPrefs,这就复杂得多 我还建议你使用greendao这是一个Android的ORM,所以你不需要编写纯SQL代码
答案 1 :(得分:0)
如果您没有存储大量数据,最好的方法是使用SharedPreferences。这里,数据存储为键值对。使用它可以更容易地存储和检索数据。
e.g。
存储数据
SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.commit();
获取数据
SharedPreferences preferences=getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
String name=preferences.getString("name",null);
答案 2 :(得分:0)
如果你真的想使用Streams,
在保存按钮的onClick方法中,您想要调用它:
try
{
FileOutputStream fos = getApplicationContext().openFileOutput("file_name.txt", Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(obj);
os.close();
} catch(Exception e) {
//handle exceptions
}
将把您在obj中定义的内容保存到名为" file_name.txt"的文件中。
要从此文本文件中读取obj,您可以调用:
try
{
FileInputStream fis = getApplicationContext().openFileInput("file_name.txt");
ObjectInputStream is = new ObjectInputStream(fis);
my_obj = (MyObject) is.readObject();
is.close();
} catch(Exception e) {
//handle exceptions
}