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文件夹下的文件相关推荐

  1. android 读取assets文件夹下的文件资源

    今天,简单讲讲如何读取assets文件夹下的文件. Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID ...

  2. Android Studio SD卡访问权限及asserts文件夹下的文件操作

    Android Studio SD卡访问权限 1.在 AndroidManifext.xml 中添加如下代码 <uses-permission android:name="androi ...

  3. python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...

    最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...

  4. webpack 读取文件夹下的文件_TypeScript完全解读(26课时)_1.TypeScript完全解读-开发环境搭建...

    1.TypeScript完全解读-开发环境搭建 初始化项目 手动创建文件夹 D:\MyDemos\tsDemo\client-demo 用VSCode打开 npm init:初始化项目 然后我们的项目 ...

  5. C# 读取指定文件夹下所有文件

    #region 读取文件 //返回指定目录中的文件的名称(绝对路径)string[] files = System.IO.Directory.GetFiles(@"D:\Test" ...

  6. python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...

    python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...

  7. 用递归方法实现读取文件夹下所有文件信息

    要实现读取文件夹下所有文件信息,其实只要用个递归方法就可以简单实现了 下面为自定义的一个类其中的showEveryFile方法就是为读取给定文件夹下每一个文件 using System; using ...

  8. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...

  9. Linux C 读取文件夹下所有文件(包括子文件夹)

    Linux C 读取文件夹下所有文件(包括子文件夹) 递归读取某文件夹及其子文件夹下所有文件名 深入探讨:linux中遍历文件夹下的所有文件 Linux C :遍历输出指定目录下的所有文件 Linux ...

最新文章

  1. python常用语法和示例_C语言切换案例教程,语法,示例和规则
  2. linux内核编译ccflag,Linux内核模块编译失败
  3. Ora-19804: Cannot reclaim 45561856 bytes disk space from 8589934592 limit
  4. 吴恩达机器学习笔记23-神经网络:表述--非线性假设(Non-linear Hypotheses)
  5. React-如何在jsx中自动补全标签(vscode)
  6. Linux/Unix桌面趣事:让桌面下雪
  7. 计算机科学与技术专业读书笔记300字,计算机读书笔记.doc
  8. 模拟信号与数字信号的本质区别
  9. 云开发【云函数的使用】
  10. 如何解决Word启动问题
  11. 最新人工智能GPT-4免费简单使用教程
  12. 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存
  13. 基于微软平台IIS/ASP.NET开发的大型网站有哪些?
  14. 流畅的python 对象引用 可变性和垃圾回收
  15. python驱动工具: ddt
  16. 【论文简述】Multiview Stereo with Cascaded Epipolar RAFT(ECCV 2022)
  17. MOS管开关时的米勒效应
  18. android p红米note2,红米Note2与魅族魅蓝note2详细对比 【图文介绍】
  19. android高仿小米时钟,Android高仿小米时钟
  20. 英雄无敌3 死亡阴影 修改器

热门文章

  1. 【涨知识】科学摆摊之手机贴膜 (防窥膜原理)
  2. canvas的drawImage()方法
  3. PHP菜鸟手记——如何解决无法装载动态链接库的问题
  4. 基于JSP的网上机票销售系统
  5. 数据结构之你没见过的稀疏数组和队列刨析!
  6. 爬取《乘风破浪的姐姐》的选手图片信息
  7. 解决div里面img图片下方有空白的问题
  8. 当Transformer遇见U-Net!
  9. Python+Vue计算机毕业设计热贡文化艺术展示与定制s5g19(源码+程序+LW+部署)
  10. 关于Y7000电量显示0充不进电的解决方案