`
byandby
  • 浏览: 1696043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 读取Resources 和 Assets 中的文件

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

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



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



看一下运行后的效果。




下面我们就来看看代码吧。
Activity02
package xiaohang.zhimeng;

import java.io.InputStream;
import org.apache.http.util.EncodingUtils;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;

public class Activity02 extends Activity{
	
	public static final String ENCODING = "UTF-8";
	TextView tv1;
	TextView tv2;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv1 = (TextView)findViewById(R.id.tv1);
		tv1.setTextColor(Color.RED);
		tv1.setTextSize(15.0f);
		tv2 = (TextView)findViewById(R.id.tv2);
		tv2.setTextColor(Color.RED);
		tv2.setTextSize(15.0f);
		tv1.setText(getFromRaw());
		tv2.setText(getFromAssets("test2.txt"));
	}
	
	//从resources中的raw 文件夹中获取文件并读取数据
	public String getFromRaw(){
	    String result = "";
		    try {
				InputStream in = getResources().openRawResource(R.raw.test1);
				//获取文件的字节数
				int lenght = in.available();
				//创建byte数组
				byte[]  buffer = new byte[lenght];
				//将文件中的数据读到byte数组中
				in.read(buffer);
				result = EncodingUtils.getString(buffer, ENCODING);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return result;
	}
	
	//从assets 文件夹中获取文件并读取数据
	public String getFromAssets(String fileName){
	    String result = "";
		    try {
				InputStream in = getResources().getAssets().open(fileName);
				//获取文件的字节数
				int lenght = in.available();
				//创建byte数组
				byte[]  buffer = new byte[lenght];
				//将文件中的数据读到byte数组中
				in.read(buffer);
				result = EncodingUtils.getString(buffer, ENCODING);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return result;
	}
}


源码附件
  • 大小: 56.4 KB
  • 大小: 16.7 KB
  • 大小: 25.6 KB
分享到:
评论
3 楼 logan676 2012-06-19  
 
2 楼 ihopethatwell 2012-05-14  
楼主我要想把这个文件assert 中文件复制到sd卡中?怎么复制?
1 楼 caik123 2012-01-02  
想请问一下,我照着你的代码编写,为什么在R文件中没有生成test1和test2文件的ID
InputStream in = getResources().openRawResource(R.raw.test1);

相关推荐

    Android 读取raw、assets中的txt文件

    在Android应用开发中,...总之,Android开发者可以通过`Resources`和`AssetManager`接口读取raw和assets目录下的txt文件,这为在应用中集成文本数据提供了便利。理解这些操作对于创建功能丰富的Android应用至关重要。

    Android Assets文件和Raw文件读取

    与res目录中的其他资源不同,Assets中的文件不会被编译或处理,而是原封不动地打包到APK中,可以在运行时动态访问。这种方式特别适合存放如数据库文件、文本文件、XML配置文件、音频文件等非标准格式的数据。 **1. ...

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

    Android从assets和res中读取文件 Android中的资源文件夹主要有两个:res和assets。res文件夹用于存放编译后的资源文件,而assets文件夹用于存放原始文件。下面我们将详细介绍这两个文件夹的作用和如何从中读取文件...

    android读取raw和assets下资源文件demo

    本示例“android读取raw和assets下资源文件demo”旨在教你如何在Android应用中有效地读取并处理存储在`res/raw`和`assets`目录下的资源文件。 一、res/raw目录 `res/raw`目录是Android资源系统的一部分,它允许...

    Android访问assets本地json文件的方法

    目的:当App中用到固定的json数据时,如:国家城市列表、班级成员等时,可以将json数据制作为本地json文件存入assets文件夹下。... // 获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问

    Android播放assets文件里视频文件相关问题分析

    - Android加载assets中的资源文件实例代码 - Android 读取assets和raw文件内容的实例代码 - Android 中raw和assets文件夹的区别 - Android API编程之Assets文件操作示例 - Android开发实现读取Assets下文件及文件...

    Android代码-文件夹的创建将raw中文件放到SD卡中将assets中文件保存到SD卡中压缩包的解压文件的删除功能.rar

    这个压缩包文件"Android代码-文件夹的创建将raw中文件放到SD卡中将assets中文件保存到SD卡中压缩包的解压文件的删除功能.rar"包含了几个关键的Android文件操作知识点。下面我们将详细探讨这些内容。 首先,让我们从...

    java android 读取dat文件

    2. **Android读取.dat文件** 在Android中,读取文件的操作与Java略有不同,因为Android对文件访问有更严格的限制。一般情况下,你需要使用`AssetManager`(对于预打包的文件)或`Context`的方法(如`openFileInput()...

    android中读取properties文件

    总结来说,Android中读取`.properties`文件主要涉及`Properties`类的使用,文件的存放位置(如`assets`或`res/raw`),以及适当的错误处理和资源管理。理解这些知识点有助于开发者更高效地管理和使用配置文件。

    android读取assets文件示例

    本文将深入探讨如何在Android中读取`assets`目录下的文件,以及相关的注意事项。 首先,`assets`目录位于项目的`src/main/assets`路径下。在此目录中创建的任何文件都会被包含在最终的APK文件中,并在运行时可供...

    android文件操作——读取assets和raw文件下的内容

    来自Resources和Assets 中的文件只可以读取而不能进行写的操作。 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。 1. 先在Activity里面调用getAssets() 来获取...

    Android 中raw和assets文件夹的区别

    Android 中的raw和assets文件夹是两个重要的资源文件夹,它们都是用于存储应用程序中的资源文件的,但是它们之间存在一些区别。本文将详细介绍raw和assets文件夹的区别,使读者更好地理解和使用它们。 相同点 raw...

    文件夹的创建将raw中文件放到SD卡中将assets中文件保存到SD卡中压缩包的解压文件的删除功能.zip

    本示例源码着重展示了如何在Android设备上进行一系列的文件管理操作,包括创建文件夹、从raw资源目录和assets目录读取文件并保存到SD卡,以及对解压缩后的文件进行删除处理。下面将详细解析这些知识点。 1. **创建...

    android 实用sax 读取xml文件内容 附

    在Android开发中,处理XML数据是一项常见的任务,无论是从服务器获取数据还是本地文件解析,XML因其结构化的特性被广泛使用。本篇文章将详细介绍如何利用SAX解析器来读取XML文件内容,这是一种轻量级、事件驱动的...

    Android Ndk: 如何从native层直接获取 assets文件夹下的文件-附件资源

    Android Ndk: 如何从native层直接获取 assets文件夹下的文件-附件资源

    Qt on Android:资源文件系统qrc与assets.docx

    通过使用Qt Creator或qmake工具,你可以创建一个`.qrc`文件,该文件包含了资源的路径和文件列表。这些资源在编译时会被编译成C++代码,并嵌入到最终的可执行文件中。例如,你可以将图片、字体、XML文件等资源添加到...

    Android开发之读取Excel表格数据

    总之,通过使用Android的AssetManager和Apache POI库,我们可以轻松地在Android应用中读取和解析Excel表格数据。理解这个过程对于构建涉及数据导入和处理功能的应用至关重要。注意在实际开发中,要考虑到性能、异常...

    raw文件数据读取

    本文将深入探讨如何在Android应用中读取RAW文件数据,以及如何处理储存在ASSETS文件夹内的资源。 一、RAW文件读取 Android系统提供了`R.raw`类,用于访问在res/raw目录下的资源文件。以下是如何读取RAW文件的基本...

    unity-android-notifications

    1. **选择合适的第三方库**:项目中可能使用了如Firebase Cloud Messaging (FCM) 或者极光推送(Apptentive)等第三方服务,这些服务提供SDK和API,使得Unity能够与Android系统进行通信,发送和接收通知。 2. **配置...

Global site tag (gtag.js) - Google Analytics