在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图片,音频或者文本信息,可以供我们在程序当中进行使用,不过他们两个也有不同点;

assets下面的文件不会被编译,通过路径可以去访问其中的内容。raw中文件会自动编译,我们可以在R.java文件中找到对应的ID,

看下面截图:

那么既然这样那我们平时该怎么样进行把资源放入这两个文件当中呢?

我个人平时喜欢比较文件的大小,如果文件比较大一点的会放入到aeests文件中,因为用这个文件文件当中的信息,相当于要去进行IO流操作,比较耗时的操作

其中比较重要的是获取到Assets和Raw文件夹中的资源方法:

Assets:AssetManager assetManager = getAssets();

Raw:        InputStream inputStream = getResources().openRawResource(R.raw.demo);

下面该Demo的Activity源代码:

  1. package com.jiangqq.aeesrtandraw;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import android.app.Activity;
  6. import android.content.res.AssetManager;
  7. import android.os.Bundle;
  8. import android.widget.EditText;
  9. /**
  10. * 该Demo演示Assets和Raw文件夹中文件的使用方法
  11. *
  12. * @author jiangqq
  13. *
  14. */
  15. public class AeesrtsAndRawActivity extends Activity {
  16. private EditText et1, et2;
  17. @Override
  18. public void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. readAssets();
  22. readRaw();
  23. }
  24. /**
  25. * 使用Assets中的文件
  26. */
  27. private void readAssets() {
  28. et1 = (EditText) findViewById(R.id.et1);
  29. AssetManager assetManager = getAssets();
  30. try {
  31. InputStream inputStream = assetManager.open("demo.txt");
  32. et1.setText(read(inputStream));
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. /**
  38. * 使用Raw中的文件
  39. */
  40. private void readRaw() {
  41. et2 = (EditText) findViewById(R.id.et2);
  42. InputStream inputStream = getResources().openRawResource(R.raw.demo);
  43. et2.setText(read(inputStream));
  44. }
  45. /**
  46. * 进行IO流读写
  47. *
  48. * @param inputStream
  49. * @return oStream.toString() or “文件读写失败”
  50. */
  51. private String read(InputStream inputStream) {
  52. try {
  53. ByteArrayOutputStream oStream = new ByteArrayOutputStream();
  54. int length;
  55. while ((length = inputStream.read()) != -1) {
  56. oStream.write(length);
  57. }
  58. return oStream.toString();
  59. } catch (IOException e) {
  60. return "文件读写失败";
  61. }
  62. }
  63. }

布局文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <LinearLayout
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:orientation="horizontal" >
  10. <TextView
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:text="@string/et1" />
  14. <EditText
  15. android:id="@+id/et1"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content" />
  18. </LinearLayout>
  19. <LinearLayout
  20. android:layout_width="fill_parent"
  21. android:layout_height="wrap_content"
  22. android:orientation="horizontal" >
  23. <TextView
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="@string/et2" />
  27. <EditText
  28. android:id="@+id/et2"
  29. android:layout_width="fill_parent"
  30. android:layout_height="wrap_content" />
  31. </LinearLayout>
  32. </LinearLayout>

Demo运行效果截图:

资源文件assets和 res下面raw文件的使用不同点的更多相关文章

  1. android 从assets和res中读取文件

    1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的.assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译, ...

  2. android资源目录---assets与res/raw区别

    android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0   字号:大中小 订阅 assets:用于存放需要打包到应用程 ...

  3. android 从assets和res中读取文件(转)

    1. 相关文件夹介绍      在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的.assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件 ...

  4. 【转】android资源目录---assets与res/raw区别

    blog.csdn.net/hshm20517/article/details/6461890 assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中.与res/raw不同点在于,ASS ...

  5. Android中asset文件夹和raw文件夹区别与用法

    *res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...

  6. GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级

    一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...

  7. 【Android】资源系列(二) -- 文件原样保留的资源assets和res/raw文件夹

    这两个文件夹都能够存放文件.而在打包的时候被原样保留. 那用这两个文件夹可以做什么事呢? 1.放一个apk,要用的时候调出来.免得去下载server下载. 2.放一个sql,当app数据库非常大的时候 ...

  8. AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文 ...

  9. Android 的assets文件资源与raw文件资源读取

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/34504183   res/raw和assets的同 ...

随机推荐

  1. 英语语法最终珍藏版笔记-17名词性-主语-宾语-同位语-表语-that从句

    名词性从句 在主从复合句中,从句可以充当主句的主语.表语.宾语或同位语.由于在多数情况下,主语.表语.宾语或同位语这四种句子成分由名词性词类充当,所以,我们把这些作用相当于名词的从句统称为名词性从句, ...

  2. [原创]cocos2d-x研习录-第一阶 背景介绍 之 cocos2d家族史

    Cocos2D是一个2D开源游戏引擎,它最早是由Ricardo Quesada(阿根廷人,社区简称Riq)和他的朋友们用Python开发的,用于开发2D游戏和基于2D图形的任何应用.最早引擎的名字源自 ...

  3. caffe matlab 借口怎么提取灰度图的 feature ? What happened if I mixed the color images with gray images together for training ?

    1. caffe matlab 接口提供了提取feature的脚本,但是由于中间要对这些图像进行RGB ---> BGR 的变换,卧槽,灰度图没有三通道啊?怎么破?从上午就在纠结怎么会跑着跑着程 ...

  4. 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

    Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation xx

  5. php 数组排序 sort asort ksort

    <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之 ...

  6. IIS6下PHP环境的资源未找到(404)问题

    故障现象: 无法找到该页, 404错误

  7. Nancy 简单学习

    1. 环境 vs2010 , nancy 2. 需要测试的功能 1. 输出 页面输出简单文本 2. 输出json 数据 3. 操作 1. 创建asp.net 空项目 2. 添加引用Nancy库 使用n ...

  8. 【转】3篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:官方原生方法分析

    作者: 牛A与牛C之间 时间: 2013-11-17 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第3篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  9. 【Swift】读取文本文件字符串

    var str:NSString = NSString.stringWithContentsOfFile(_srcouceFilePath,encoding:NSUTF8StringEncoding, ...

  10. nginx http跳转到https

    server { listen 80; server_name www.888.com; location / { #index.html放在虚拟主机监听的根目录下 root /usr/local/n ...