资源文件assets和 res下面raw文件的使用不同点
2023-09-14 08:59:52 时间
在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图片,音频或者文本信息,可以供我们在程序当中进行使用,不过他们两个也有不同点;
assets下面的文件不会被编译,通过路径可以去访问其中的内容。raw中文件会自动编译,我们可以在R.java文件中找到对应的ID,
看下面截图:
那么既然这样那我们平时该怎么样进行把资源放入这两个文件当中呢?
我个人平时喜欢比较文件的大小,如果文件比较大一点的会放入到aeests文件中,因为用这个文件文件当中的信息,相当于要去进行IO流操作,比较耗时的操作
其中比较重要的是获取到Assets和Raw文件夹中的资源方法:
Assets:AssetManager assetManager = getAssets();
Raw: InputStream inputStream = getResources().openRawResource(R.raw.demo);
下面该Demo的Activity源代码:
- package com.jiangqq.aeesrtandraw;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import android.app.Activity;
- import android.content.res.AssetManager;
- import android.os.Bundle;
- import android.widget.EditText;
- /**
- * 该Demo演示Assets和Raw文件夹中文件的使用方法
- *
- * @author jiangqq
- *
- */
- public class AeesrtsAndRawActivity extends Activity {
- private EditText et1, et2;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- readAssets();
- readRaw();
- }
- /**
- * 使用Assets中的文件
- */
- private void readAssets() {
- et1 = (EditText) findViewById(R.id.et1);
- AssetManager assetManager = getAssets();
- try {
- InputStream inputStream = assetManager.open("demo.txt");
- et1.setText(read(inputStream));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 使用Raw中的文件
- */
- private void readRaw() {
- et2 = (EditText) findViewById(R.id.et2);
- InputStream inputStream = getResources().openRawResource(R.raw.demo);
- et2.setText(read(inputStream));
- }
- /**
- * 进行IO流读写
- *
- * @param inputStream
- * @return oStream.toString() or “文件读写失败”
- */
- private String read(InputStream inputStream) {
- try {
- ByteArrayOutputStream oStream = new ByteArrayOutputStream();
- int length;
- while ((length = inputStream.read()) != -1) {
- oStream.write(length);
- }
- return oStream.toString();
- } catch (IOException e) {
- return "文件读写失败";
- }
- }
- }
布局文件:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/et1" />
- <EditText
- android:id="@+id/et1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/et2" />
- <EditText
- android:id="@+id/et2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
- </LinearLayout>
Demo运行效果截图:
相关文章
- java读写文件
- Spring MVC程序中得到静态资源文件css,js,图片
- MFC将二进制文件导入资源后释放
- MSSQL安全审计文件执行Rootkit-WarSQLKit
- Windows Store App 全球化:在XAML元素中引用文件资源
- 解决Tomcat无法加载css和js等静态资源文件
- springMVC拦截css与js等资源文件的解决
- 装载Properties资源文件的项目中使用
- APP全局异常捕获,并保存本地文件
- 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片
- 用虚拟鸭子CYBERDUCK同步RACKSPACE CLOUD文件
- 文件_ _android从资源文件中读取文件流并显示的方法
- 使用ResourceBundle访问资源文件(properties)帮助类
- 在 Visual Studio Code 里让左边文件浏览器里的图标更加美化
- Atitit maven配置pom文件 配置法v2 t33 目录 1. Maven打包war原理1 1.1. 在target目录生成war包ori目录。。。里面就是所有的资源1 1.2. 去掉
- Atitit maven 编译与资源文件与web目录自定义配置 与eclipse的集成与war包打包 1.1. 配置webapp目录 plugin设置 webappDirectory1 1.2.
- Android源码 在framework中加入一张图片资源,获取不到资源文件
- Qt5资源文件
- Linux学习笔记-文件处理和权限命令
- 打包jar文件 外部调用资源 so等
- Geopandas对地图文件按区域进行分割并统计
- .NET(C#) 读取Resource资源文件的方法
- VC++使用fprintf函数实现写日志文件的功能(附源码)
- VC++从工程的rc资源中将资源文件取出来或读出来(附源码)
- spark rdd saveAsTextFile保存为文件
- 如果想要跨平台,在file类下有separtor(),返回锁出平台的文件分隔符
- Xilinx FGPA Pinout文件查找
- SpringBoot访问静态资源文件(css、js、images)
- Vivado中注意在生成Bitstream中的文件设计问题,就是逻辑分析仪是对RTL进行配置,不是对Testbench文件进行配置。
- Win10查看回收站清空超过1万个文件,占用资源高造成系统卡死,删除失败