我目前(Android的应用程序)开发的小游戏,我想我的榜保存到一个.TXT-文件,因为如果我将它保存只是一个列表,该列表将是空的,每次我开始该应用程序新。 对于一般的java程序来说,这对我来说不是问题,因为FileWriter在程序文件夹中创建了一个.txt文件。 如果我在Android中这样做,我会得到(当然)错误,他不能创建该文件。FileWriter:如何设置目标文件夹?
那我怎么告诉FileWriter的地方来保存文件和我应该在哪里保存呢?如果文件名已经存在,如FileOutput中的“MODE_PRIVATE”-Mode,FileWriter是否会删除现有文件并创建一个具有相同名称的新文件?我知道我可以使用FileOutput/InputStream来保存文件在内部存储,但FileOutput只接受字节(这是没有问题的.getBytes() - 方法),但我找不到方法当我想读取它们时,将字节转换回字符串。
(我对任何语法错误道歉因为英语不是我的母语)
UPDATE:
首先非常感谢您的帮助迄今。 但我仍然需要一些具体的帮助。那就是我想要做的事情:每次我的比赛结束时,我切换到积分活动并给他达到的积分。在积分活动中,我将积分放入列表中,并将此列表写入内部存储器的文件中。在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();
}
我读了很多问题上计算器关于这一点,但我仍然不知道如何读取这个文件把每一个行的文件一个新的字符串或int类型列入清单。我希望你明白我想要做什么。
好吧,我想我没有得到这个背后的全部想法。我的意思是SharedMedia似乎不是我所需要的,因为你不能把一个整数列表(只是原始类型和一组字符串)。 FileOutputStream只是接受字节?所以我有一个填充字节的文件。当我想要读取另一个Activity中的File并将内容保存到整数列表中时,如何将这些字节转换回字符串? – Marcel
没有人能告诉我? – Marcel
不完全确定你在看什么?因为你可以从while读取数据,并且可以将其转换为字符串,并且可以将其解析为int http://stackoverflow.com/questions/2902689/how-can-i-read-a-text-file-from-the-sd -card-in-android –