我目前(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 –