0

私は瞬間に小さなゲームを開発しています(Android-App)。ハイスコアを.txtファイルに保存したいのですが、リストに保存すると、アプリを起動するたびにリストが空になるためです。新着。FileWriterはプログラムフォルダに.txtを作成するため、一般的なJavaプログラムの場合、これは私にとっては問題ではありません。Androidでこれを行うと、(もちろん)彼がファイルを作成できなかったというエラーが発生します。

では、ファイルを保存する場所とファイルを保存する場所をFileWriterに指示するにはどうすればよいですか?FileOutputの「MODE_PRIVATE」モードのようにファイル名がすでに存在する場合、FileWriterは既存のファイルを削除し、同じ名前の新しいファイルを作成しますか?

FileOutput / InputStreamを使用してファイルを内部ストレージに保存できることはわかっていますが、FileOutputはバイトを受け入れるだけです(.getBytes()-メソッドでは問題ありません)が、バイトを元に戻す方法が見つかりません私がそれらを読みたいときに文字列に。

(英語は私の母国語ではないので、文法の間違いをお詫びします)

アップデート:

最初はこれまでの助けに大いに感謝します。しかし、私はまだいくつかの特定の助けが必要です。それが私がやりたいことです。ゲームが終了するたびに、ポイントアクティビティに切り替えて、到達したポイントを彼に与えます。ポイントアクティビティでは、ポイントをリストに入れ、このリストを内部ストレージのファイルに書き込みます。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 に答える