android写出资源文件,Android 读取Assets下的资源文件
做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下的资源文件相关推荐
- android中拷贝assets下的资源文件到SD卡中(可以超过1M)
很多手机游戏,在安装APK之后都得需要下载相应的资源包,然后才能进入游戏. 有这样一个需求:就是游戏中需要的资源包打在APK内,随apk一起进行安装到手机中. 这样就不需要,在安装APK之后,去下载资 ...
- android读取assets下的.json文件,并且转化为实体类
创建一个类,用来方法调用.如下,小伙伴用的时候可以直接调用. public class SimulateNetAPI {/*** 获取去最原始的数据信息* @return json data*/pub ...
- android go rom下载地址,一步一步学Android ROM开发(一)——修改现有ROM资源文件-Go语言中文社区...
一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...
- 一步一步学Android ROM开发(一)——修改现有ROM资源文件
一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...
- python读取c盘中的csv文件-python读取当前目录下的CSV文件数据
在处理数据的时候,经常会碰到CSV类型的文件,下面将介绍如何读取当前目录下的CSV文件,步骤如下 1.获取当前目录所有的CSV文件名称: #创建一个空列表,存储当前目录下的CSV文件全称 file_n ...
- SpringBoot 读取项目中静态资源文件
目录 一. ClassPathResource 二. DefaultResourceLoader 三. PathMatchingResourcePatternResolver 四. ResourceU ...
- web页面找不到资源文件,报404,但是资源文件存在且路径没错
如题 , 今天遇到这个问题,maven项目导入本地myeclipse,正常跑起来之后,在web端存在部分页面资源加载不进来. 但是项目资源确实存在,一开始以为是myeclipse开发环境搭建错误导致, ...
- java导出jar包后,程序运行时读取图片、音乐资源文件
java导出jar包后,程序运行时读取图片.音乐资源文件 运行时程序就可以把图片.音乐资源加载进入了 start jre/bin/java -jar 名称.jar
- IDEA maven项目src源代码下的资源文件不自动复制到classes文件夹的解决方法
在学习spring boot的时候,书中的代码是把java文件和资源文件放到了同一个文件夹下,在idea maven项目下面运行会一直报错,因为资源文件不会自动复制到classes文件夹下,如下图: ...
- android读取assets中的html文件,android读取assets文件.htm
android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...
最新文章
- mapreduce编程实例(4)-求中位数和标准差
- linux 下安装nginx
- 日志文件切割服务logrotate配置及crontab定时任务的使用
- 支付宝支付 - 异步通知与同步通知
- Lambda表达式有参数有返回值的练习
- 看到一个有趣的东东。
- C程序的储存空间是如何分配?
- 1命名规则 sentinel_Sentinel实战:为系统做限流保护
- mysql孤立锁_SQL Server解决孤立用户浅析
- 使用js、jquery完成省市二级联动
- c语言冒泡排序法代码
- Optisystem中器件的学习(1-Visualizer Library、Sensors)
- 论文解析:Neural Graph Collaborative Filtering
- 微信小程序 富文本编辑器 editor
- Chrome 添加【微信 / QQ】内置浏览器(解决 “请在微信客户端打开链接” 提示)
- Vue3.2——父传子、子传父
- 搞一下整车以太网技术 | 04 CBS基于信用整形
- python实现账号密码登录
- 深度学习电脑配置推荐
- 2022-2028年全球与中国敞篷汽车座椅行业深度分析
热门文章
- POI Invalid column index (-5).Allowable column range for EXCEL2007 is (0..16383) or (‘A‘..‘XFD‘)问题解决
- unity3d Space Game太空射击游戏资源包
- 三、Logstash安装部署
- 情感分析学习笔记(3)——情感传播(sentiment propagation)
- SQL语句查询关键字
- 设计一套前端项目组织结构
- Calendar根据日期获取年份和周、当前周的所有日期
- 美国佛罗里达州立大学刘毅老师招收机器学习方向全奖博士生
- html怎么唤起虚拟键盘,电脑虚拟键盘怎么打开?电脑虚拟键盘打开五大方法介绍...
- 自然语言处理NLP中的N-gram模型