做Android开发近半年了,东西越学越多,硬盘容量越来越小。很多东西找起来也不方便,为此,我打算从今天起把工作中学到的东西整理起来,写成日记。也希望与广大网友分享我的经验。一同进步。今天主要介绍文件读取。下面讲讲原理。如果大家不感兴趣,可以直接跳过。

assets文件夹资源的访问

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

1. 先在Activity里面调用getAssets() 来获取AssetManager引用。

2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。

4.调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作

以下为从Raw文件中读取:

代码

public String getFromRaw(){

try {

InputStreamReader inputReader = new InputStreamReader( getResources().openRawResource(R.raw.test1));

BufferedReader bufReader = new BufferedReader(inputReader);

String line="";

String Result="";

while((line = bufReader.readLine()) != null)

Result += line;

return Result;

} catch (Exception e) {

e.printStackTrace();

}

}

以下为直接从assets读取

代码

public String getFromAssets(String fileName){

try {

InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) );

BufferedReader bufReader = new BufferedReader(inputReader);

String line="";

String Result="";

while((line = bufReader.readLine()) != null)

Result += line;

return Result;

} catch (Exception e) {

e.printStackTrace();

}

}

当然如果你要得到内存流的话也可以直接返回内存流!

接下来,我们新建一个工程文件,命名为AssetsDemo。

然后建立一个布局文件,如下,很简单,无需我多介绍,大家一看就明白。

然后呢,我从网上找了段文字,存放在assets文件目录下,取名为health.txt 这就是今天我们要读取的文件啦。这个.txt文件,我们可以直接双击查看。如下所示。

接下来,就是今天的重头戏,Android读取文件的核心代码。就直接贴代码了。

package com.assets.cn;

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 AssetsDemoActivity extends Activity {

public static final String ENCODING = "UTF-8";

TextView tv1;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tv1 = (TextView)findViewById(R.id.tv1);

tv1.setTextColor(Color.BLACK);

tv1.setTextSize(25.0f);

tv1.setText(getFromAssets("health.txt"));

}

//从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;

}

}

这里是mainfest文件。

android:label="@string/app_name">

最后,我们运行一下程序。

细心的朋友也行会发现,这其实就是一个简单的阅读器了,哈哈......

ok,全部讲解完毕,大家有不明白的可以给我留言。

====》源码下载:http://download.csdn.net/detail/gsg8709/4118291

Android -- 拷贝assets下的资源文件到SD卡中(可以超过1M)

很多手机游戏,在安装APK之后都得需要下载相应的资源包,然后才能进入游戏. 有这样一个需求:就是游戏中需要的资源包打在APK内,随apk一起进行安装到手机中. 这样就不需要,在安装APK之后,去下载资 ...

android中拷贝assets下的资源文件到SD卡中(可以超过1M)

很多手机游戏,在安装APK之后都得需要下载相应的资源包,然后才能进入游戏. 有这样一个需求:就是游戏中需要的资源包打在APK内,随apk一起进行安装到手机中. 这样就不需要,在安装APK之后,去下载资 ...

Android 读取assets文件下的txt文件

android 读取assets文件下的txt文件,解决了读取txt文件的乱码问题: package com.example.com.scrollview; import java.io.Buffer ...

android开发,assets下面的资源文件不会变化/改动

我再调试asserts下面的资源文件,发现我改动assets下面的文件内容,在真机上测试的时候还是最原先的内容,没有变,后来,卸载,重装就ok了. 原因: assets下面的资源文件,若覆盖重装,则里 ...

读取web应用下的资源文件(例如properties)

package gz.itcast.b_resource; import java.io.IOException; import java.io.InputStream; import java.ut ...

unity 自动删除未引用的Assets下的资源

随着时间的堆积,项目中Assets文件夹下的资源会变得越来越繁杂,有些贴图.材质啥的可能压根没有使用过,但是又不敢轻易去删除. 这里分享两个插件,用于管理这些资源. 一.ResourceChecker ...

Springboot 项目 无法读取resources下的mapper文件夹的.xml文件

之前学习的时候遇到的一个问题 org.springframework.beans.factory.BeanCreationException: Error creating bean with nam ...

php读取目录下的所有文件

php读取目录下的所有文件 $path = './use'; $result = scanFile($path); function scanFile($path) { global $result; ...

maven 编译部署src/main/java下的资源文件

maven 编译部署src/main/java下的资源文件 maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到targ ...

随机推荐

清空Github上某个文件的历史版本

title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...

C++_static与非static成员(函数)

static与非static成员(函数)  第4版399页: 对于特定类类型的全体对象而言,访问一个全局变量有时是必要的.然而,全局变量会破坏封装:对象需要支持特定 ...

framework各版本新特性(为面试准备)

菜鸟D估计描述这些新特性的文章都是烂大街的货色,之所以拿出来分(e)享(xin)一下,有两个原因:1.当年面试的时候有人问到,我不知道该怎么回答:2.项目需要发布了,但是考虑到framework的版本 ...

Asp.net Zero 应用实战-最初部署问题

此时用的是aspnet-zero-core-4.3.0 1.前两天vs2017刚刚最新升级了,打开后就报错,然后就根据提示把每个项目文件中添加了

EntityFrameworkCore DBFirst

需要引用如下nuget包 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityF ...

Integer与int区别

Integer与int的区别:估计大多数人只会说道两点,一开始我也不太清楚,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i ...

Spring Boot常用注解

SpringBoot注解大全   一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@Enable ...

java实验2实验报告(20135232王玥)

实验二 Java面向对象程序设计 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解 ...

CentOS7 查看硬盘情况

lsblk                                  查看分区和磁盘 df -h                                         查看空间使用情 ...

js判断上传图片宽高及文件大小

android写出资源文件,Android 读取Assets下的资源文件相关推荐

  1. android中拷贝assets下的资源文件到SD卡中(可以超过1M)

    很多手机游戏,在安装APK之后都得需要下载相应的资源包,然后才能进入游戏. 有这样一个需求:就是游戏中需要的资源包打在APK内,随apk一起进行安装到手机中. 这样就不需要,在安装APK之后,去下载资 ...

  2. android读取assets下的.json文件,并且转化为实体类

    创建一个类,用来方法调用.如下,小伙伴用的时候可以直接调用. public class SimulateNetAPI {/*** 获取去最原始的数据信息* @return json data*/pub ...

  3. android go rom下载地址,一步一步学Android ROM开发(一)——修改现有ROM资源文件-Go语言中文社区...

    一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...

  4. 一步一步学Android ROM开发(一)——修改现有ROM资源文件

    一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...

  5. python读取c盘中的csv文件-python读取当前目录下的CSV文件数据

    在处理数据的时候,经常会碰到CSV类型的文件,下面将介绍如何读取当前目录下的CSV文件,步骤如下 1.获取当前目录所有的CSV文件名称: #创建一个空列表,存储当前目录下的CSV文件全称 file_n ...

  6. SpringBoot 读取项目中静态资源文件

    目录 一. ClassPathResource 二. DefaultResourceLoader 三. PathMatchingResourcePatternResolver 四. ResourceU ...

  7. web页面找不到资源文件,报404,但是资源文件存在且路径没错

    如题 , 今天遇到这个问题,maven项目导入本地myeclipse,正常跑起来之后,在web端存在部分页面资源加载不进来. 但是项目资源确实存在,一开始以为是myeclipse开发环境搭建错误导致, ...

  8. java导出jar包后,程序运行时读取图片、音乐资源文件

    java导出jar包后,程序运行时读取图片.音乐资源文件 运行时程序就可以把图片.音乐资源加载进入了 start jre/bin/java -jar 名称.jar

  9. IDEA maven项目src源代码下的资源文件不自动复制到classes文件夹的解决方法

    在学习spring boot的时候,书中的代码是把java文件和资源文件放到了同一个文件夹下,在idea maven项目下面运行会一直报错,因为资源文件不会自动复制到classes文件夹下,如下图: ...

  10. android读取assets中的html文件,android读取assets文件.htm

    android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...

最新文章

  1. mapreduce编程实例(4)-求中位数和标准差
  2. linux 下安装nginx
  3. 日志文件切割服务logrotate配置及crontab定时任务的使用
  4. 支付宝支付 - 异步通知与同步通知
  5. Lambda表达式有参数有返回值的练习
  6. 看到一个有趣的东东。
  7. C程序的储存空间是如何分配?
  8. 1命名规则 sentinel_Sentinel实战:为系统做限流保护
  9. mysql孤立锁_SQL Server解决孤立用户浅析
  10. 使用js、jquery完成省市二级联动
  11. c语言冒泡排序法代码
  12. Optisystem中器件的学习(1-Visualizer Library、Sensors)
  13. 论文解析:Neural Graph Collaborative Filtering
  14. 微信小程序 富文本编辑器 editor
  15. Chrome 添加【微信 / QQ】内置浏览器(解决 “请在微信客户端打开链接” 提示)
  16. Vue3.2——父传子、子传父
  17. 搞一下整车以太网技术 | 04 CBS基于信用整形
  18. python实现账号密码登录
  19. 深度学习电脑配置推荐
  20. 2022-2028年全球与中国敞篷汽车座椅行业深度分析

热门文章

  1. POI Invalid column index (-5).Allowable column range for EXCEL2007 is (0..16383) or (‘A‘..‘XFD‘)问题解决
  2. unity3d Space Game太空射击游戏资源包
  3. 三、Logstash安装部署
  4. 情感分析学习笔记(3)——情感传播(sentiment propagation)
  5. SQL语句查询关键字
  6. 设计一套前端项目组织结构
  7. Calendar根据日期获取年份和周、当前周的所有日期
  8. 美国佛罗里达州立大学刘毅老师招收机器学习方向全奖博士生
  9. html怎么唤起虚拟键盘,电脑虚拟键盘怎么打开?电脑虚拟键盘打开五大方法介绍...
  10. 自然语言处理NLP中的N-gram模型