1.res/raw和assets的相同點:java
(1)二者目錄下的文件在打包後會原封不動的保存在apk包中,不會被編譯成二進制。資源
2.res/raw和assets的不一樣點: (1)res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候須要AssetManager類get
(2)res/raw不能夠有目錄結構,而assets則能夠有目錄結構,也就是assets目錄下能夠再創建文件夾編譯
3.讀取res/raw下的文件資源打包
(1)讀取res/raw下的文件資源,經過如下方式獲取輸入流來進行寫操做 InputStream is = getResources().openRawResource(R.id.filename);file
思考: 在未知目錄下有哪些文件,該如何獲取這些文件的名稱並把文件拷貝到目標目錄中呢?(用於內置文件但不知道文件名稱,須要篩選出想要的文件而後拷貝到目標目錄中,推薦內置在assets文件夾中) (1)res/raw目錄: 經過反射的方式獲得R.java裏面raw內部類裏面全部的資源ID的名稱,而後經過名稱獲取資源ID的值來讀取咱們想要的文件。(這個方法我沒試過,有用過的同窗麻煩發一段代碼看看)。 (2)assets目錄: getAssets().list("");來獲取assets目錄下全部文件夾和文件的名稱,再經過這些名稱再讀取咱們想要的文件。二進制