0

我正在开发一个小游戏(Android-App),我想将我的高分保存到一个 .txt 文件中,因为如果我将它保存在一个列表中,那么每次启动应用程序时列表都是空的新的。对于一般的 java 程序,这对我来说不是问题,因为 FileWriter 在程序文件夹中创建了一个 .txt。如果我在 Android 中这样做,我(当然)会得到错误,即他无法创建文件。

那么如何告诉 FileWriter 将文件保存在哪里以及应该保存在哪里呢?如果文件名已经存在,如 FileOutput 中的“MODE_PRIVATE”模式,FileWriter 是否会删除现有文件并创建一个具有相同名称的新文件?

我知道我可以使用 FileOutput/InputStream 将文件保存在内部存储中,但 FileOutput 只接受字节(.getBytes()-Method 没有问题),但我找不到将字节转换回来的方法当我想阅读它们时进入字符串。

(我为任何语法错误道歉,因为英语不是我的母语)

更新:

首先非常感谢到目前为止的帮助。但我仍然需要一些具体的帮助。这就是我想做的:每次我的游戏结束时,我都会切换到积分活动并给他达到的积分。在积分活动中,我将积分放入一个列表中,并将此列表写入内部存储中的一个文件中。在 Highscores-Activity 中,我想读取这个文件并将文件的内容放在一个列表中,以便使用 ListView 在屏幕上打印它。这是编写文件的代码:

ArrayList<Integer> highscoreListe = new ArrayList<Integer>();
punkte = getIntent().getExtras().getInt("Punkte");
public void writeToExternalStoragePublic() throws IOException
 {
     String filename = "highscores.txt"; 

     FileOutputStream fos= null;
     OutputStreamWriter osw = null;
     fos= openFileOutput(filename,Context.MODE_PRIVATE);
     osw = new OutputStreamWriter(fos);
     for(Integer score : highscoreListe)
     {
         osw.write(score);
         osw.append(System.getProperty("line.separator"));
     }
     osw.close();
     fos.close();
 }

我在 stackoverflow 上阅读了很多关于此的问题,但我仍然不知道如何读取此文件以将文件中的每一行都放入一个新字符串或 int 到列表中。我希望你明白我想做什么。

4

1 回答 1

0

请参考此链接以添加文件

http://developer.android.com/guide/topics/data/data-storage.html#pref

在模拟器模式下以“APPEND模式”写入文本文件,

does the FileWriter deletes an existing file and creates a new file with the same name if the filename already exists

是的,但考虑

public FileWriter(File file,
                  boolean append)
append - if true, then bytes will be written to the end of the file rather than the beginning 

你想让你的文件私有写入内部存储。

于 2012-06-14T06:38:03.583 回答