2012-04-04 8 views
0

質問、私はハイスコアのデータを含むテキストファイル(.txt)を保存するアプリケーションを作っています。私はハイスコアの活動からこの行のファイルを作った:私のアプリが作るファイルを保存するためのデフォルトのディレクトリ

File highscoreList = new File("highscores.txt"); 

どこに配置されますか? highscores.javaファイルと同じディレクトリにありますか?または、テキストファイルをhighscores.javaと同じフォルダに配置するディレクトリを指定するにはどうすればよいですか?

答えて

3

コンテキストメソッドopenFileInputopenFileOutputを使用してファイルにアクセスする必要があります。 getFileStreamPathを使用して、実際にどこに格納されているかを判断できます。 (彼らが入るディレクトリはgetFilesDirで得ることができます)。この方法を使用する利点は、ファイルがアプリケーションに対してプライベートになり、アプリケーションがアンインストールされた場合に自動的に削除されることです。あなたの活動で

、あなたとあなたのFileを作成することができます。

FileOutputStream output = null; 
try { 
    output = openFileOutput("highscores.txt", MODE_PRIVATE); 
    // write to file 
} finally { 
    if (output != null) { 
     try { output.close(); } 
     catch (IOException e) { 
      Log.w(LOG_TAG, "Error closing file!", e); 
     } 
    } 
} 

同様に、あなたが使用することができます読み取るため:あなたがしたいすべてがそれに書き込む場合には

File highscoreList = getFileStreamPath("highscores.txt"); 

は、
FileInputStream input = openFileInput("highscores.txt"); 

Activityサブクラスの外からファイルにアクセスしようとすると、 Contextが必要です。 (Viewでは、例えば、あなたがgetContext()を使用することができます。ヘルパークラスの場合、あなたはActivityインスタンスまたは他のいくつかのContextのオブジェクトに渡す必要があります。)

+0

さて、私は完全にそれを理解していませんでした。それを少し明確にしていただけますか? – user1258829

+0

@ user1258829 - サンプルコードを追加しました –

関連する問題