Android-res/raw/assets存放資源的限制和讀取方式

分類:技術 時間:2016-10-25

res/raw和assets的相同點

兩者目錄下的文件在打包后會原封不動的保存在apk包中,不會被編譯成二進制文件。

res/raw和assets的不同點

  1. res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要使用AssetManager類。
  2. res/raw文件下不可以新建目錄結構,而assets則可以自定義目錄結構,也就是assets目錄下可以再建立文件夾。

讀取文件資源

1.讀取res/raw下的文件資源,通過以下方式獲取輸入流來進行寫操作:

InputStream is = getResources().openRawResource(R.id.filename);

2.讀取assets下的文件資源,通過以下方式獲取輸入流來進行寫操作:

AssetManager am = null ;
am = getAssets();
InputStream is = am.open(quot;filenamequot;);

3.獲取assets下的文件列表

String[] files = getAssets().list(quot;quot;);

Android 對asset與raw的限制

在讀取這兩個資源文件夾中的文件時會有一定的限制,即單個文件大小不能超過1M ,如果讀取超過1M的文件會報 quot;Data exceeds UNCOMPRESS_DATA_MAX (1314625 vs 1048576)quot; 的IOException。

The End:

  1. 我的:簡書
  2. 我的: GitHub
  3. 我的: 博客
  4. 我的: CSDN
  5. Email:[email protected]
  6. 微信:

    掃一掃上面的二維碼,加我微信


Tags: 安卓開發

文章來源:http://www.jianshu.com/p/3e7f8b9f3bfe


ads
ads

相關文章
ads

相關文章

ad