Android Studio-保存用户数据

Android Studio-保存用户数据,android,android-studio,Android,Android Studio,我想保存一个文件“xp.txt”,以跟踪用户在游戏中的体验。如果文件不存在,我想创建它并在文件中写入“0”(表示0)。如果文件存在,我希望从中读取并将exp保存到java类中的int变量。我还想知道如何将值从“0”改为其他值 提前谢谢 我目前的代码是: try { OutputStreamWriter out = new OutputStreamWriter(openFileOutput(XP, 0)); out.write("0");

我想保存一个文件“xp.txt”,以跟踪用户在游戏中的体验。如果文件不存在,我想创建它并在文件中写入“0”(表示0)。如果文件存在,我希望从中读取并将exp保存到java类中的int变量。我还想知道如何将值从“0”改为其他值

提前谢谢

我目前的代码是:

        try {
        OutputStreamWriter out = new OutputStreamWriter(openFileOutput(XP, 0));
        out.write("0");
        out.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        InputStream in = openFileInput(XP);
        if (in != null) {
            InputStreamReader temp = new InputStreamReader(in);
            BufferedReader reader = new BufferedReader(temp);
            String str;
            StringBuilder buf = new StringBuilder();
            while ((str = reader.readLine()) != null) {
                xp = Integer.parseInt(str);
                System.out.println(xp);
            }
            in.close();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

但是我找不到文本文件,并且它不能按我的预期工作。

您可以使用以下方法存储数据

  • 共享首选项-将私有基元数据存储在键值中 成对的
  • 内部存储—在设备内存中存储专用数据
  • 外部存储—将公共数据存储在共享外部存储上
  • SQLite数据库—将结构化数据存储在专用数据库中
  • 网络连接-使用自己的网络在web上存储数据 服务器
  • 我认为对于您的用例
    SharedReferences
    会很好。一个简单的例子是

    保存值:

    SharedPreferences.Editor editor = getSharedPreferences("unique_name", MODE_PRIVATE).edit();
    editor.putInt("xp", 10);
    editor.commit();
    
    检索值

    SharedPreferences prefs = getSharedPreferences("unique_name", MODE_PRIVATE); 
    int xp = prefs.getInt("xp", 0); // will return 0 if no  value is saved
    

    您可以从中了解更多信息。

    为什么不使用共享首选项或内容提供商来实现这一点?它们是什么?如何设置?