2014-02-17 52 views
0

我正在閱讀如何寫入內部存儲,並在Android Developer論壇上找到以下代碼方法。Android上下文

在這兩種情況下,我不知道如何獲取/調用「上下文」的方法。

我不明白上下文變量是什麼以及如何創建它。

說我希望應用程序在啓動時讀取文件。

什麼是上下文,如何使用它來實現從存儲器讀取。

File file = new File(context.getFilesDir(),filename);

FileInputStream fis = context.openFileInput("Data.dat", 
               Context.MODE_PRIVATE); 

    InputStreamReader isr = new InputStreamReader(fis); 
    BufferedReader bufferedReader = new BufferedReader(isr); 
    StringBuilder sb = new StringBuilder(); 
    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     sb.append(line); 
    } 
+1

拿來看這一線,將幫助你瞭解Android的背景下,餵我回來 http://stackoverflow.com/questions/3572463/what-is-context-in-android –

+0

當我嘗試通過'Context context = this'獲取上下文。'.openFileInput'給了我一個錯誤:「Context中的方法openFileInput(String)不適用於參數(String,int)」 – Jack

+0

openFileInput此方法只取得你需要打開的文件的名字,但是這個方法的openFileOutput取兩個參數的文件名和模式 –

回答

1

Android開發者網站的有關文件的文檔從內部存儲讀取說...

來讀取內部存儲文件:

  1. 呼叫openFileInput(),並通過它的名字要讀取的文件。這將返回一個FileInputStream
  2. 從文件中讀取字節read()
  3. 然後關閉流close()

所以,你的代碼讀取名爲Data.dat應該是如下的文件。

FileInputStream fis = context.openFileInput("Data.dat"); 
InputStreamReader isr = new InputStreamReader(fis); 
BufferedReader bufferedReader = new BufferedReader(isr); 
StringBuilder sb = new StringBuilder(); 
String line; 
while ((line = bufferedReader.readLine()) != null) { 
    sb.append(line); 
}