如何訪問android的asset目錄和res目錄下的文件

  在很多時候,我們需要訪問android中的資源文件,這些資源文件主要分爲兩類,一種出於asset目錄下,稱爲原生文件,這類文件在被打包成apk文件時是不會進行壓縮的;另一類則是res下的文件,這類文件在打包成apk文件時,會進行小內存優化的哦。

 

      兩種不同類型的文件,對應着不同的訪問模式。我們先來看看asset文件的訪問:

     android中有一個專門的類來處理應用對asset文件的訪問,這個類就是AssetManager。其內有一個open()方法可以根據用戶提供的文件名,返回一個InputStream對象供用戶使用。

我們截圖看下api中的方法:

這裏我們可以看到open方法以及其他的相應方法,對於其中有一個參數accessMode,則指定了系統獲取資源的模式。主要值有以下幾種:

 

ACCESS_BUFFER :加載文件到內存中,這種方式適合小文件的讀取;

ACCESS_RANDOM:可以隨意的向前或者向後的讀取數據塊

ACCESS_STRAMING:順序的讀取內容

ACCESS_UNKNOWN:當沒有明確指定時,使用默認模式

這裏我們一定要注意,open(String fileName)默認的使用ACCESS_STREAMING模式進行讀取!!

那麼我們如何獲得一個AssetManager對象呢,在activity中我們可以通過以下的代碼獲取:

AssetManager assetManager = this.getResources().getAsset();

-----------------------------------------------------------------------------------

如何訪問res目錄下的文件呢?

我們再activity中可以通過如下方法進行訪問,InputStream inputStream = Resources.openRawResource(int id);

api中是這樣描述的:

最後,我們一定要注意,asset和res下的文件都是隻能讀不能寫的哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章