保存到android中的文件

时间:2015-01-12 18:26:50

标签: java android

我为游戏创建了一个简单的地图创建器,我想创建一个保存按钮,将永久保存游戏文件中所有级别的信息(所以当他们退出应用程序时,级别仍将存在),我尝试将所有信息保存在文本文件中,但我无法理解它是如何工作的以及如何使用FileOutputStream以及如何在文本文件中加载。是否有更简单的方法来保存级别或更多建议的方式?谁能解释我如何保存文本文件并加载它?谢谢!

3 个答案:

答案 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
}