Android读取asserts和raw文件夹下的文件
Android读取asserts和raw文件夹下的文件
经常需要用到读取“/res/raw”和"/asserts"文件夹下的文件,索性写成工具类方便以后使用。
一、raw文件夹下的文件操作工具类:
1 /** 2 * raw文件夹下的文件处理工具类 3 * 4 * */ 5 public class RawFileUtils { 6 private RawFileUtils( ){ 7 8 } 9 10 /** 11 * 读取raw文件夹下的文件 12 * @param resourceId raw文件夹下的文件资源ID 13 * @return 文件内容 14 * 15 * */ 16 public static String readFileFromRaw(Context context, int resourceId) { 17 if( null == context || resourceId < 0 ){ 18 return null; 19 } 20 21 String result = null; 22 try { 23 InputStream inputStream = context.getResources().openRawResource( resourceId ); 24 // 获取文件的字节数 25 int length = inputStream.available(); 26 // 创建byte数组 27 byte[] buffer = new byte[length]; 28 // 将文件中的数据读到byte数组中 29 inputStream.read(buffer); 30 result = EncodingUtils.getString(buffer, "utf-8"); 31 } catch (Exception e) { 32 e.printStackTrace(); 33 } 34 35 return result; 36 } 37 }
二、asserts文件夹下的文件操作工具类:
1 /** 2 * asserts文件处理 3 * 4 * */ 5 public class AssertsFileUtils { 6 private AssertsFileUtils( ){ 7 8 } 9 10 /** 11 * 读取asserts目录下的文件 12 * @param fileName eg:"updatelog.txt" 13 * @return 对应文件的内容 14 * 15 * */ 16 public static String readFileFromAssets(Context context, String fileName) throws IOException, IllegalArgumentException { 17 if (null == context || TextUtils.isEmpty( fileName )){ 18 throw new IllegalArgumentException( "bad arguments!" ); 19 } 20 21 AssetManager assetManager = context.getAssets(); 22 InputStream input = assetManager.open(fileName); 23 ByteArrayOutputStream output = new ByteArrayOutputStream(); 24 byte[] buffer = new byte[1024]; 25 int length = 0; 26 while ((length = input.read(buffer)) != -1) { 27 output.write(buffer, 0, length); 28 } 29 output.close(); 30 input.close(); 31 32 return output.toString(); 33 } 34 35 /** 36 * 列出Asserts文件夹下的所有文件 37 * @return asserts目录下的文件名列表 38 * 39 * */ 40 public static List<String> getAssertsFiles( Context context ) throws IllegalArgumentException{ 41 if( null == context ){ 42 throw new IllegalArgumentException( "bad arguments!" ); 43 } 44 45 AssetManager assetManager = context.getAssets(); 46 String[] files = null; 47 try { 48 files = assetManager.list(""); 49 } catch (IOException e) { 50 e.printStackTrace( ); 51 } 52 53 return ( null == files )?null:Arrays.asList( files ); 54 } 55 }
三、实例:
1 public class MyActivity extends Activity{ 2 3 public static final String ENCODING = "UTF-8"; 4 TextView tv1; 5 TextView tv2; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.main); 11 tv1 = (TextView)findViewById(R.id.tv1); 12 tv1.setTextColor(Color.RED); 13 tv1.setTextSize(15.0f); 14 tv2 = (TextView)findViewById(R.id.tv2); 15 tv2.setTextColor(Color.RED); 16 tv2.setTextSize(15.0f); 17 tv1.setText(getFromRaw()); 18 tv2.setText(getFromAssets("test2.txt")); 19 } 20 21 //从resources中的raw 文件夹中获取文件并读取数据 22 public String getFromRaw(){ 23 String result = ""; 24 try { 25 InputStream in = getResources().openRawResource(R.raw.test1); 26 //获取文件的字节数 27 int lenght = in.available(); 28 //创建byte数组 29 byte[] buffer = new byte[lenght]; 30 //将文件中的数据读到byte数组中 31 in.read(buffer); 32 result = EncodingUtils.getString(buffer, ENCODING); 33 } catch (Exception e) { 34 e.printStackTrace(); 35 } 36 return result; 37 } 38 39 //从assets 文件夹中获取文件并读取数据 40 public String getFromAssets(String fileName){ 41 String result = ""; 42 try { 43 InputStream in = getResources().getAssets().open(fileName); 44 //获取文件的字节数 45 int lenght = in.available(); 46 //创建byte数组 47 byte[] buffer = new byte[lenght]; 48 //将文件中的数据读到byte数组中 49 in.read(buffer); 50 result = EncodingUtils.getString(buffer, ENCODING); 51 } catch (Exception e) { 52 e.printStackTrace(); 53 } 54 return result; 55 } 56 }
参考:http://blog.csdn.net/ekeuy/article/details/39479201
转载于:https://www.cnblogs.com/larack/p/4058902.html
Android读取asserts和raw文件夹下的文件相关推荐
- android 读取assets文件夹下的文件资源
今天,简单讲讲如何读取assets文件夹下的文件. Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID ...
- Android Studio SD卡访问权限及asserts文件夹下的文件操作
Android Studio SD卡访问权限 1.在 AndroidManifext.xml 中添加如下代码 <uses-permission android:name="androi ...
- python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...
最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...
- webpack 读取文件夹下的文件_TypeScript完全解读(26课时)_1.TypeScript完全解读-开发环境搭建...
1.TypeScript完全解读-开发环境搭建 初始化项目 手动创建文件夹 D:\MyDemos\tsDemo\client-demo 用VSCode打开 npm init:初始化项目 然后我们的项目 ...
- C# 读取指定文件夹下所有文件
#region 读取文件 //返回指定目录中的文件的名称(绝对路径)string[] files = System.IO.Directory.GetFiles(@"D:\Test" ...
- python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...
python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...
- 用递归方法实现读取文件夹下所有文件信息
要实现读取文件夹下所有文件信息,其实只要用个递归方法就可以简单实现了 下面为自定义的一个类其中的showEveryFile方法就是为读取给定文件夹下每一个文件 using System; using ...
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...
- Linux C 读取文件夹下所有文件(包括子文件夹)
Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...
最新文章
- python常用语法和示例_C语言切换案例教程,语法,示例和规则
- linux内核编译ccflag,Linux内核模块编译失败
- Ora-19804: Cannot reclaim 45561856 bytes disk space from 8589934592 limit
- 吴恩达机器学习笔记23-神经网络:表述--非线性假设(Non-linear Hypotheses)
- React-如何在jsx中自动补全标签(vscode)
- Linux/Unix桌面趣事:让桌面下雪
- 计算机科学与技术专业读书笔记300字,计算机读书笔记.doc
- 模拟信号与数字信号的本质区别
- 云开发【云函数的使用】
- 如何解决Word启动问题
- 最新人工智能GPT-4免费简单使用教程
- 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些?
- 流畅的python 对象引用 可变性和垃圾回收
- python驱动工具: ddt
- 【论文简述】Multiview Stereo with Cascaded Epipolar RAFT(ECCV 2022)
- MOS管开关时的米勒效应
- android p红米note2,红米Note2与魅族魅蓝note2详细对比 【图文介绍】
- android高仿小米时钟,Android高仿小米时钟
- 英雄无敌3 死亡阴影 修改器