Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android ApiDemos示例解析(47):Content->Assets->Read Asset

Android ApiDemos示例解析(47):Content->Assets->Read Asset

編輯:Android開發教程

android.Content包定義了一些類,這些類主要用於在設備上訪問或是發布數據,主要有三個包構成。

Content 共享 (android.content) 主要用於在Application的各個部件自己共享一些數據,主要的列有Content Provider,ContentResolver用於管理和發布數據。 Intent,IntentFilter 用於Application不同組件之間發送消息。

Package 管理 (android.content.pm) 用於訪問Android Package (.apk)定義的Activities, Permissions, Services, Signatures和Providers,主要的類為PackageManager。

資源管理 (android.content.res) 用於訪問應用中定義的資源,如Strings,Drawables, Media,Device Configuration等 等,主要的類為Resources。

一般來說Application把資源放在res目錄下面,有些情況下Application需要使用一些自定義的文件,一種方法是將它們放在 res/raw 目錄下面,另外一種方法是將它們放在assets目錄下,和res 目錄不同的是,Android SDK不會為目錄assets 下的文件 生成資源ID,而是通過AssetManager 以文件的文件名來訪問,放在/assets的目錄機構是什麼樣的,使用AssetManager 訪問時 也是采用同樣的文件結構。和res相比,assets 提供了更低一層次的資源訪問。

本例使用AssetManager來訪問assets 目 錄下的read_asset.txt 。

InputStream is = getAssets().open("read_asset.txt");      

// We guarantee that the available method returns the total
// size of the asset...  of course, this does mean that a single
// asset can't be more than 2 gigs.
int size = is.available();

// Read the entire asset into a local byte buffer.
byte[] buffer = new byte[size];
is.read(buffer);
is.close();

// Convert the buffer into a string.
String text = new String(buffer);

// Finally stick the string into the text view.
TextView tv = (TextView)findViewById(R.id.text);
tv.setText(text);

在Activity 中可以通過getAssets() 來取得AssetManager對象,和文件操作類似AssetManager可 以通過字節流的方式來讀取文件。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved