2017-08-27 344 views
0

与此下面的代码我试图访问其存储在asset/raw文件夹文件,但我得到nullAndroid开文件/生

E/ERR: file:/android_asset/raw/default_book.txt (No such file or directory) 

错误,我的代码是:

private void implementingDefaultBook() { 
    String filePath = Uri.parse("file:///android_asset/raw/default_book.txt").toString(); 
    File file  = new File(filePath); 
    try { 
     FileInputStream stream  = new FileInputStream(file); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Log.e("ERR ", e.getMessage()); 
    } catch (OutOfMemoryError e) { 
     e.printStackTrace(); 
    } 
} 

enter image description here

回答

0

相同的字符串将你的文本文件放在/ assets目录下呃Android项目并按如下方式使用AssetManager类来访问它。

AssetManager am = context.getAssets(); 
InputStream is = am.open("default_book.txt"); 

或者你也可以把文件中的/ RES/raw目录,从该文件可以通过ID就可以访问如下

InputStream is = 
context.getResources().openRawResource(R.raw.default_book); 
+0

我希望帮你。 Plz接受答案并加入它。谢谢 :) –

2

资产和资源开发机器上的文件。它们不是设备上的文件。

对于资产,请在AssetManager上使用open()以获得资产的InputStream

此外,FWIW:

  • Uri.parse("file:///android_asset/raw/default_book.txt").toString()是没有意义的,因为它给你,你开始

  • file:///android_asset/仅适用于WebView

0
InputStream is = getAssets().open("default_book.txt");