-4

我有一个简单的游戏,我需要将高分(浮点数)存储到文件中,然后在用户下次使用应用程序时读取它。我希望将其保存在设备上,但是,我没有办法做到这一点。如何将设备上的数据保存到选定的位置?

4

3 回答 3

1

您可以使用内部存储。这将创建可以写入和读取的文件。最好的方法是创建一个单独的类来处理文件。这里有两种读取和写入高分的方法。

要设置高分,请使用setHighScore(float f)

public void setHighScore(float highscore){
    FileOutputStream outputStream = null;
    try {
        outputStream = (this).openFileOutput("highscore", Context.MODE_PRIVATE);

        outputStream.write(Float.toString(f)).getBytes());
        outputStream.close();

    } catch (Exception e) {e.printStackTrace();}
}

要获得最高分,请使用getHighScore()

public float getHighScore(){
    ArrayList<String> text = new ArrayList<String>();

    FileInputStream inputStream;
    try {
        inputStream = (this).openFileInput("highscore");

        InputStreamReader isr = new InputStreamReader(inputStream);
        BufferedReader bufferedReader = new BufferedReader(isr);

        String line;
        while ((line = bufferedReader.readLine()) != null) {
            text.add(line);
        }
        bufferedReader.close();
    } catch (Exception e) { e.printStackTrace();}
return Float.parseFloat(text.get(1));
}
于 2015-09-06T13:20:59.837 回答
0

使用文件处理- 我建议通过使用文件处理技术来进行基本操作。使用 java 的 InputStream 和 OutputStream 类自动创建一个文本文件。然后在其中添加浮动。正如上面评论中所建议的那样。

使用属性文件- 请参阅此代码 - http://www.mkyong.com/java/java-properties-file-examples/

使用数据库- 您可以继续使用数据库,该数据库将安全地存储分数并确保没有人轻易篡改它。教程 - http://www.tutorialspoint.com/jdbc/

于 2015-09-06T12:50:39.357 回答
0

用很少的几行尝试简单。

public void saveHighScore(File file, float highScore){
try{
Formatter out = new Formatter(file);
out.format("%f", highScore);
out.close();
}catch(IOException ioe){}
}
于 2017-08-24T04:10:34.793 回答