res/raw和assets的相同點
兩者目錄下的文件在打包后會原封不動的保存在apk包中,不會被編譯成二進制文件。
res/raw和assets的不同點
- res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要使用AssetManager類。
- 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:
- 我的:簡書
- 我的: GitHub
- 我的: 博客
- 我的: CSDN
- Email:[email protected]
- 微信:
掃一掃上面的二維碼,加我微信
Tags: 安卓開發
文章來源:http://www.jianshu.com/p/3e7f8b9f3bfe