美文网首页
Raw与Assets中资源的区别

Raw与Assets中资源的区别

作者: 规诫 | 来源:发表于2019-07-24 15:21 被阅读0次

在建立项目中一般会默认建立assets文件,
当然我们还可以在res文件下面建立raw文件夹,
这里面都可以存放一些图片,音频或者文本信息,
可以供我们在程序当中进行使用,不过他们两个也有不同点;
assets下面的文件不会被编译,通过路径可以去访问其中的内容。
raw中文件会自动编译,我们可以在R.java文件中找到对应的ID,

Raw目录和Assets目录的区别

1.Raw目录下的文件可以映射到R文件中,Assets目录不可以
2.Raw目录下文件通过Resources类来获取,
Assets目录下的文件通过AssetsManager类来获取
3.Raw目录下不可以再创建文件夹,Assets目录可以
4.Raw目录和Assets目录都是原生资源,在Apk打包时不会编译成二进制文件。

代码

// 1.获取AssetsManager对象
AssetManager assetManager = getAssets();
try {
    // 2.通过AssetsManager对象的open来获取文件名对应的输入流
    InputStream is = assetManager.open("aa/test2.txt");
    // 3.将流转为字符串
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "gbk"));
    StringBuffer sb = new StringBuffer();
    String line = null;
    while ((line = br.readLine()) != null) {
    sb.append(line);
    }
    // 将读取到的内容吐司出来
    Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
    e.printStackTrace();
}
// 1.获取raw目录下的文件,需要用到资源管理类
Resources resources = getResources();
// 2.通过Resources对象的openRawResource(R.raw.test) 获取到指定的文件对应的流
InputStream is = resources.openRawResource(R.raw.test);
// 3.将流转为字符串
try {
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "gbk"));
    StringBuffer sb = new StringBuffer();
    String line = null;
    while ((line = br.readLine()) != null) {
    sb.append(line);
    }
    // 将读取到的内容吐司出来
    Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show();
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

相关文章

  • Raw与Assets中资源的区别

    在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图...

  • Android 资源文件基本使用

    assets和raw目录中资源的区别 相同点 在打包生成的apk中两者目录下的文件都保持原始的文件格式,不会被编译...

  • Android的资源文件介绍

    【库】res/raw与assets区别:http://blog.csdn.net/chdjj/article/de...

  • android raw与assets区别

    *res/raw和assets的相同点: 两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制...

  • assets与res/raw的区别

    src/main/assets vs src/main/res/raw 的相同点与不同点 相同点都不会被编译成二进...

  • assets 与 res/raw 的区别

    asset:文件不会被映射到R文件中;可以有目录结构;使用 AssetManager 获得输入流。res/raw:...

  • assets和raw的区别

    最近用到了assets和raw,于是就想重新了解下它们的区别。下面记录下来。 相同点: 两者目录下的文件在打包后会...

  • res/raw、res/drawable与assets

    以下内容整理自互联网,仅用于个人学习 res/raw与assets对比 res/raw和assets的相同点:两者...

  • assets和res/raw目录区别

    相同点: 两个文件夹下的文件都不会被编译为二进制文件,都会原封不动的放到apk包中。 不同点 assets内可以有...

  • assets与res/raw资源目录的区别

    *res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进...

网友评论

      本文标题:Raw与Assets中资源的区别

      本文链接:https://www.haomeiwen.com/subject/libxrctx.html