2016-04-27 90 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文件