Android读取assets目录下文件数据内容


Android的体系架构设计中,assets目录下的数据内容(图片、文件等等)将不会被Android系统压缩、二次处理等,assets目录下的文件将保持原汁原味打包进Android的apk文件中,因此,利用Android assets这一点特性,根据项目开发的需要,在某种情况下,可以在assets目录下存放一些不希望被Android系统二次处理的原始文件,就像在PC开发时候直接针对硬盘上存放的文件内容进行读写一样读出原始数据。比如Android项目中有以下assets文件目录结构,如图:


代码如下:

public String readAsset() {AssetManager am = this.getAssets();String[] path = null;try {// 列出files目录下的文件path = am.list("files");} catch (IOException e) {e.printStackTrace();}String data = "";// 遍历assets目录下,files文件夹下的所有文件,读取这些文件的数据并输出。for (int i = 0; i < path.length; i++) {InputStream is = null;try {// 根据上文的 ‘files’+文件名,拼成一个路径,用AssetManager打开一个输入流,读写数据。is = am.open("files/" + path[i]);} catch (IOException e) {e.printStackTrace();}// 读取一个文件完成,加上换行符(主要是为了观察输出结果,无他)。data = data + readDataFromInputStream(is) + "\n";try {is.close();} catch (IOException e) {e.printStackTrace();}}return data;}public String readDataFromInputStream(InputStream is) {BufferedInputStream bis = new BufferedInputStream(is);String str = "", s = "";int c = 0;byte[] buf = new byte[64];while (true) {try {c = bis.read(buf);} catch (IOException e) {e.printStackTrace();}if (c == -1)break;else {try {s = new String(buf, 0, c, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}str += s;}}try {bis.close();} catch (IOException e) {e.printStackTrace();}return str;}

其中,this指针为当前的Context或者Activity


原创地址:http://blog.csdn.net/zhangphil/article/details/48247541

更多相关文章

  1. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定
  2. 熟悉Android打包编译的流程
  3. android使用mysql的方法总结
  4. 一篇看懂Android与Flutter之间的通信
  5. Android应用程序进程启动过程的源代码分析
  6. Android(安卓)AOSP基础(三)Android系统源码的整编和单编
  7. iOS程序员必须知道的Android要点
  8. android 问题总结
  9. Android编译环境

随机推荐

  1. Android 编程下 Touch 事件的分发和消费
  2. Android调用JNI出错 java.lang.Unsatisfi
  3. Android App调用跳转百度地图、高德地图
  4. android实现原理说明之一_application In
  5. Android:Activity与Fragment通信(99%)完美
  6. android 之使用任意XML资源文件
  7. Android 中文 API (90) —— WindowManag
  8. Android(安卓)利用【Hierarchy Viewer 】
  9. Android之旅第一站——初识安卓…
  10. Android设计应用图标不用愁---Asset Stud