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();
}
} }

最新文章

  1. [Machine Learning &amp; Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族
  2. oracle数据库的安装、配置与无残留卸载
  3. vector 去重复
  4. Leetcode 290 Word Pattern STL
  5. linux type命令用法_转
  6. MarkdownPad2添加目录(输出为HTML时可用)
  7. 将数据库从普通文件系统迁移到ASM中
  8. android151 笔记
  9. 【LeetCode】Flatten Binary Tree to Linked List
  10. Swift - 产生不重复数字的随机数生成器
  11. css3圆角代码
  12. tomcat连接数设置
  13. Angular.js之内置过滤器学习笔记
  14. Jmeter读取文件中的值《一》
  15. mysql年初至今聚合
  16. 025 SSM简单搭建
  17. Android 混合式开发AppCan介绍
  18. IE11与Cognos怪谈
  19. TYVJ 2002 扑克牌 题解
  20. 洛谷——P1869 愚蠢的组合数

热门文章

  1. Learning Face Age Progression: A Pyramid Architecture of GANs-1-实现人脸老化
  2. UIView的intrinsicContentSize方法,在按钮中重写
  3. 【Python学习之六】文件操作
  4. 如何用Docker部署Spring Boot项目
  5. ProtoStuff无法反序列化Deprecated注解成员问题记录
  6. Oracle和Mysql中的字符串的拼接
  7. PostgreSql11.5源码安装
  8. 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?
  9. Apache Kafka工作流程| Kafka Pub-Sub Messaging
  10. Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法