Android中资源文件assets和res下面raw文件的使用不同点

在建立项目中一般会默认建立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源代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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 "文件读写失败" ;
         }
     }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值