Android筆記(四十九) Android中的資源訪問——asset

來源:互聯網
上載者:User

標籤:

    1.檔案讀取方式
    AssetManager.open(String filename),返回的是一個InputSteam類型的位元組流,這裡的filename必須是檔案,而不能是檔案夾,AssetManager開啟資源檔的open方法是一個重載方法,可以添加一個開啟檔案的int參數,根據參數不同可做相應操作。

   2.資源檔是可以存在檔案夾以及子目錄
    public final String[]list(String path),返回目前的目錄下面的所有檔案以及子目錄的名稱。可以通過遞迴遍曆整個檔案目錄,實現所有資源檔的訪問。

MainActivity.java

package cn.lixyz.iotest.activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import cn.lixyz.iotest.R;import cn.lixyz.iotest.util.IOFile;public class MainActivity extends Activity implements OnClickListener {    private Button bt_asset_read;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findView();        bt_asset_read.setOnClickListener(this);    }    public void findView() {        bt_asset_read = (Button) findViewById(R.id.bt_asset_read);    }    @Override    public void onClick(View v) {        IOFile ioFile;        switch (v.getId()) {        case R.id.bt_asset_read:            ioFile = new IOFile(this);            ioFile.readFromAsset(this);            break;        }    }}

 

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="cn.lixyz.iotest.activity.MainActivity" >    <Button        android:id="@+id/bt_asset_read"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="ASSET目錄讀取" /></LinearLayout>

 

IOFile.java

package cn.lixyz.iotest.util;import java.io.IOException;import java.io.InputStream;import android.content.Context;import android.content.res.AssetManager;import android.util.Log;public class IOFile {    Context mContext;    public IOFile(Context context) {        mContext = context;    }    // 讀取asset目錄中的內容    public void readFromAsset(Context context) {        try {            // 擷取asset管理器            AssetManager assetManager = context.getAssets();            // 通過asset管理器擷取asset目錄下的子目錄下的檔案            String[] filesName = assetManager.list("txts");            // 迴圈讀出檔案內容            for (int i = 0; i < filesName.length; i++) {                InputStream inputStream = assetManager.open("txts/" + filesName[i]);                byte[] bytes = new byte[inputStream.available()];                inputStream.read(bytes);                String str = new String(bytes);                Log.d("TTTT", filesName[i] + "的內容是:" + str);            }        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

 

Android筆記(四十九) Android中的資源訪問——asset

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.