2013-12-20 3 views
0

Я пытаюсь прочитать текстовый файл, но получаю исключение в openRawResource, у меня был текстовый файл внутри папки с возможностью переноса, вот мой код.Почему я получаю Nullpointer Exception?

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

Да, я знаю, как получить этот контекст, тогда – 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

Я попробовал оба, но не работал, все еще давая мне Null Pointer Exception – Jitendra

+0

может отлаживать и проверять, какой объект является нулевым, поэтому мы можем определить, что именно вызывает это исключение нулевого указателя – nikvs

+0

getResources() is давая нулевой указатель – Jitendra

Смежные вопросы