2013-12-20 203 views
0

我試圖讀取一個文本文件,但在openRawResource獲取異常,我有我的文本文件裏面的drawable文件夾,這裏是我的代碼。爲什麼得到空指針異常?

public void PlayWithRawFiles() throws IOException {  
    String str=""; 
    StringBuffer buf = new StringBuffer();   
    InputStream is = getApplicationContext().getResources().openRawResource(R.drawable.dict_7letter); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    if (is!=null) {       
     while ((str = reader.readLine()) != null) { 
      buf.append(str + "\n"); 
     }    
    }  
    is.close(); 
    Log.d("from dict", "........."+buf);     


} 
+0

可能是你的背景是空訪問它....否則顯示您的logcat的輸出。 – SilentKiller

+0

是的,我知道bt如何獲得該上下文然後 – Jitendra

+0

可繪製文件夾是可繪製的而不是文本文件。您應該使用資產文件夾作爲您想要包含的隨機文件。 – Kuffs

回答

0

把你的文本文件中,資產和寫下面的代碼讀取文本文件:

public String ReadFromfile(String fileName, Context context) { 
     StringBuilder returnString = new StringBuilder(); 
     InputStream fIn = null; 
     InputStreamReader isr = null; 
     BufferedReader input = null; 
     try { 
      fIn = context.getResources().getAssets() 
        .open(fileName, Context.MODE_WORLD_READABLE); 
      isr = new InputStreamReader(fIn); 
      input = new BufferedReader(isr); 
      String line = ""; 
      while ((line = input.readLine()) != null) { 
       returnString.append(line); 
      } 
     } catch (Exception e) { 
      e.getMessage(); 
     } finally { 
      try { 
       if (isr != null) 
        isr.close(); 
       if (fIn != null) 
        fIn.close(); 
       if (input != null) 
        input.close(); 
      } catch (Exception e2) { 
       e2.getMessage(); 
      } 
     } 
     return returnString.toString(); 
} 
0

您可以將原始文件夾中的文本文件資源下。 然後訪問它

getResources().openRawResource(R.raw.dict_7letter); 

如果你需要保持在繪製文件夾本身使用

getResources().getIdentifier("drawable/dict_7letter","drawable", getPackageName()) 

InputStream ins = getResources().openRawResource(getResources().getIdentifier("drawable/dict_7letter","drawable", getPackageName())); 
+0

我試過但沒有工作仍然給我空指針異常 – Jitendra

+0

可以ü調試和檢查哪些對象爲空,所以我們可以確定究竟是什麼導致此空指針異常 – nikvs

+0

getResources()是給空指針 – Jitendra