Android笔记(四十九) Android中的资源访问——asset
2015-11-01 02:27
411 查看
1.文件读取方式
AssetManager.open(String filename),返回的是一个InputSteam类型的字节流,这里的filename必须是文件,而不能是文件夹,AssetManager打开资源文件的open方法是一个重载方法,可以添加一个打开方式的int参数,根据参数不同可做相应操作。
2.资源文件是可以存在文件夹以及子目录
public final String[]list(String path),返回当前目录下面的所有文件以及子目录的名称。可以通过递归遍历整个文件目录,实现所有资源文件的访问。
MainActivity.java
activity_main.xml
IOFile.java
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(); } } }
相关文章推荐
- Java设计模式之模板模式(Template)在Android中的应用
- android 自定义控件实现截图框功能
- android toolchain maintain team
- Android笔记(四十八) Android中的资源访问——SDCard
- Android--分析内存溢出原因
- android 自定义toast
- Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
- Java设计模式之适配器模式(Adapter)在Android中的应用
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android MVP 模式:简单易懂的介绍方式
- Android之Material Design兼容使用Demo
- Android任务管理器的设计实现
- Android5.1.1源码 - 虚拟机的创建
- 源码分析Android 应用进程的启动过程
- android中控制根据是否选中或者按下改变按钮的颜色(通过xml代码实现)
- Java设计模式之单例模式(Singleton)在Android系统服务中的应用
- android给View设置边框 填充颜色 弧度
- android给View设置边框 填充颜色 弧度
- 友盟分享实例( 一)——在activity中的应用
- Android中HorizontalScrollView的使用