zoukankan      html  css  js  c++  java
  • Android中资源文件夹res/raw和assets的使用

    *res/raw和assets的相同点:

    1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

    *res/raw和assets的不同点:
    1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
    2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

    *读取文件资源:
    1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

    Java代码  收藏代码
    1. InputStream is = getResources().openRawResource(R.id.filename);  

      
    2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

    Java代码  收藏代码
    1. AssetManager am = null;    
    2. am = getAssets();    
    3. InputStream is = am.open("filename");    



    补充一下:在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)
    1.res/raw目录:
    通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。
    2.assets目录:
    getAssets().list("");来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。

    或者直接访问file:///android_asset/filename

     

  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879920.html
Copyright © 2011-2022 走看看