Android读取Resources和Assets中的文件

转载 2011年01月10日 13:06:00

 在Android平台下,除了对应用程序的私有文件夹中的文件进行操作外,还可以从资源文件和 Assets 中获得输入流读取数据,这些文件分别放在应用程序的res/raw 目录和 assets 目录下,这些文件在编译的时候和其他文件一起被打包。

    需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作,下面就通过一个例子来说明如何从 Resources 和 Assets中的文件中读取信息。首先分别在res/raw 和 assets 目录下新建两个文本文件 "test1.txt"   和 "test2.txt" 用以读取,结构如下图。



   为了避免字符串转码带来的麻烦,可以将两个文本文件的编码格式设置为UTF-8。设置编码格式的方法有很多种,比较简单的一种是用 Windows 的记事本打开文本文件,在另存为对话框中编码格式选择"UTF-8" ,如下图。



看一下运行后的效果。




下面我们就来看看代码吧。
Activity02

Java代码 复制代码
  1. package xiaohang.zhimeng;   
  2.   
  3. import java.io.InputStream;   
  4. import org.apache.http.util.EncodingUtils;   
  5. import android.app.Activity;   
  6. import android.graphics.Color;   
  7. import android.os.Bundle;   
  8. import android.widget.TextView;   
  9.   
  10. public class Activity02 extends Activity{   
  11.        
  12.     public static final String ENCODING = "UTF-8";   
  13.     TextView tv1;   
  14.     TextView tv2;   
  15.        
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {   
  18.         super.onCreate(savedInstanceState);   
  19.         setContentView(R.layout.main);   
  20.         tv1 = (TextView)findViewById(R.id.tv1);   
  21.         tv1.setTextColor(Color.RED);   
  22.         tv1.setTextSize(15.0f);   
  23.         tv2 = (TextView)findViewById(R.id.tv2);   
  24.         tv2.setTextColor(Color.RED);   
  25.         tv2.setTextSize(15.0f);   
  26.         tv1.setText(getFromRaw());   
  27.         tv2.setText(getFromAssets("test2.txt"));   
  28.     }   
  29.        
  30.     //从resources中的raw 文件夹中获取文件并读取数据   
  31.     public String getFromRaw(){   
  32.         String result = "";   
  33.             try {   
  34.                 InputStream in = getResources().openRawResource(R.raw.test1);   
  35.                 //获取文件的字节数   
  36.                 int lenght = in.available();   
  37.                 //创建byte数组   
  38.                 byte[]  buffer = new byte[lenght];   
  39.                 //将文件中的数据读到byte数组中   
  40.                 in.read(buffer);   
  41.                 result = EncodingUtils.getString(buffer, ENCODING);   
  42.             } catch (Exception e) {   
  43.                 e.printStackTrace();   
  44.             }   
  45.             return result;   
  46.     }   
  47.        
  48.     //从assets 文件夹中获取文件并读取数据   
  49.     public String getFromAssets(String fileName){   
  50.         String result = "";   
  51.             try {   
  52.                 InputStream in = getResources().getAssets().open(fileName);   
  53.                 //获取文件的字节数   
  54.                 int lenght = in.available();   
  55.                 //创建byte数组   
  56.                 byte[]  buffer = new byte[lenght];   
  57.                 //将文件中的数据读到byte数组中   
  58.                 in.read(buffer);   
  59.                 result = EncodingUtils.getString(buffer, ENCODING);   
  60.             } catch (Exception e) {   
  61.                 e.printStackTrace();   
  62.             }   
  63.             return result;   
  64.     }   
  65. }  

http://byandby.javaeye.com/blog/835744

读取Resources和Assets中的文件

在Android平台上,可以从资源文件和assets中获得输入流读取数据。这些文件分别存放在应用程序的res/raw目录和assets目录下,这些文件将会在编译的时候和其他文件一起被打包。assets...
  • zhangying1994
  • zhangying1994
  • 2016年03月15日 22:24
  • 1581

Android中assets目录和raw目录的区别及其中properties资源文件的读取

一、assets和raw目录 1. assets。assets类资源放在工程根目录的assets子目录下,它里面保存的是一些原始的文件,可以以任何方式来进行组织。这些文件最终会被原装不动地打包在apk...
  • honghailiang888
  • honghailiang888
  • 2016年08月15日 16:19
  • 1360

Android开发之assets目录下资源使用总结

因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们。那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.a...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年08月03日 18:42
  • 54398

Android读取assets下面文件的代码例子

  • 2016年05月04日 16:41
  • 2.14MB
  • 下载

Android Assets文件和Raw文件读取

  • 2014年08月06日 16:43
  • 871KB
  • 下载

android 文件读取(assets)

android 文件 assets
  • mk_yyy
  • mk_yyy
  • 2015年06月23日 16:25
  • 258

android studio 读取assets文件夹下的文件

首先,和eclipse不同的是assets文件夹的位置,在eclipse中,assets文件夹是在res文件夹下 Paste_Image.png 在android studio中有所不同 Pa...
  • halaoda
  • halaoda
  • 2017年11月07日 20:02
  • 227

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

注:原博:http://blog.csdn.net/zhangphil Android读取assets目录下文件数据内容 Android的体系架构设计中,ass...
  • zhangli_
  • zhangli_
  • 2015年11月24日 11:11
  • 1392

android 文件读取(assets)

assets文件夹资源的访问        assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。       1. 先在Activit...
  • brockliu1010
  • brockliu1010
  • 2013年10月08日 13:25
  • 345

Android读取assets目录下所有文件

package org.crazyit.image; import java.io.IOException; import java.io.InputStream; import android....
  • laotou99
  • laotou99
  • 2014年12月06日 11:38
  • 8305
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android读取Resources和Assets中的文件
举报原因:
原因补充:

(最多只允许输入30个字)