1. 程式人生 > >如何訪問android的asset目錄和res目錄下的檔案

如何訪問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下的檔案都是隻能讀不能寫的哦。