Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从文本文件中检索值_Android_Text Files_Storage - Fatal编程技术网

Android 从文本文件中检索值

Android 从文本文件中检索值,android,text-files,storage,Android,Text Files,Storage,我正在构建一个包含测验的应用程序。用户完成测验后,将向用户显示一个活动,该活动以TextView的形式计算其总分。我想在这里实现的是存储测验结束时向用户显示的TextView值(包含分数),但也在另一个名为“显示所有高分的位置”的活动中显示该值存储。我相信我正在存储该值,**但我无法在我的总scroe活动中看到它(而不是检索它)**这在两个活动中都已初始化 private final static String storeHighscores="storeHighscores.txt";

我正在构建一个包含测验的应用程序。用户完成测验后,将向用户显示一个活动,该活动以
TextView
的形式计算其总分。我想在这里实现的是存储测验结束时向用户显示的TextView值(包含分数),但也在另一个名为“显示所有高分的位置”的活动中显示该值存储。我相信我正在存储该值,**但我无法在我的总scroe活动中看到它(而不是检索它)**这在两个活动中都已初始化

    private final static String storeHighscores="storeHighscores.txt";
测验活动后的总结。 该变量称为finalscore,int

finalScore = timeLeft * QuizActivity.correct;


            try {

                OutputStreamWriter out =    new OutputStreamWriter(openFileOutput(storeHighscores, 0));

                out.write(finalScore);

                out.close();

                Toast.makeText(this, "The contents are saved in the file.", Toast.LENGTH_LONG).show();

                }

            catch (Throwable t) {

                Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show();

            }
TotaScore活性

try {

        InputStream in = openFileInput(storeHighscores);

        if (in != null) {

        InputStreamReader tmp=new InputStreamReader(in);

        BufferedReader reader=new BufferedReader(tmp);

        String str;

        StringBuilder buf=new StringBuilder();

        while ((str = reader.readLine()) != null) {

        buf.append(str);

        }

        in.close();

        easy.setText(buf.toString());

        }

        }

不确定我是否在这里使用了正确的方法,请随意建议我如何实现我想要的,或者这种方法的替代方案

使用SharedReference似乎更适合此任务

见此帖:


文档:

您尝试使用返回字符串的
reader.readLine()
从文件中读取一行。但是文件中没有字符串行,因为您只将整数的四个字节写入其中。所以也写一个字符串作为行。您可以使用out.writeLine(String.valueOf(finalScore));你能建议我一个实现来大致了解该做什么吗?你所要做的就是使用那一行而不是原来的write()。当用建议的方法替换out.writeLine()方法时,我得到了这个错误“类型OutputStreamWriter的方法writeLine(String)未定义”是的。你必须使你的保存代码更像阅读代码。您使用了BufferedReader.readLine()。因此,等效的方法是添加一个BufferedWriter。这是writeLine()。