2016-04-27 82 views
0

我正在嘗試讀取存儲在res/raw下的文本文件。我無法解決爲什麼文件無法打開並將內容讀入textArea「usersTextArea」。系統只輸出System.out.println("file could not open");。我不認爲文件路徑不正確。任何人都知道可能會導致問題的原因?謝謝。Android Java從res/raw中讀取文本文件,未找到文件錯誤

public void readFile() 
{   
    String path = "android.resource://" + getPackageName() + "/" + R.raw.users; 

    try 
    { 
     Scanner s = new Scanner(new File(path)); 

     while (scan.hasNext()) 
     { 
      String data = scan.next(); 
      usersTextArea.append(data); 
     } 
     scan.close(); 
    } 
    catch(Exception error) 
    { 
     System.out.println("file could not open"); 
    } 
} 

回答

1

您可以訪問原始資源是這樣的:

getResources().openRawResource(R.raw.users) 
0

你應該嘗試像:

public void readFile() { 
    final InputStream input = getResources().openRawResource(R.raw.users); 
    final Scanner scanner = new Scanner(input); 
    try { 
     // read the file 
    } finally { 
     // don't forget to close the resources, once you are done with them 
     scanner.close(); 
     input.close(); 
    } 
} 
-1

提供讀/寫權限清單文件

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

那麼你可以閱讀res/r aw文件