android 开发中的原生资源

android开发中总是有很多的资源,这些资源都是系统所依赖的,在不同的文件夹下放置不同的资源,不仅可以提高程序的清晰度,而且android 系统为我们也做了很多的事情,在不同的文件夹,android框架会为我们生成不同的内容:

Android应用资源大的方向可以分为2大类:

一、

无法从R清单类中获取到资源的原始资源类,保存在assets文件夹下,

二、

可以通过R清单获取到资源的类,保存在res文件夹下

android开发中的原生资源可以放置到两个地方,一个是在assets文件夹下,还有一种是放置到res/raw文件夹下,这个文件夹在开始创建android项目的时候是默认不建立的,需要手工去建立,因为在res文件夹下的文件会在R类中生成对应的ID,进而可以通过ID来进行查找相应的资源,所以放置的位置不同,使用的方式也不太一样,从大方面来说,因为都是原始资源类,所以都是需要通过流的形式进入程序中进行显示的,不同就是在获取流的方式上,这也是android框架做的一些事情:

assert文件夹下的文件

package com.xu.dbtest.io;

import android.content.Context;
import android.util.Log;

import com.xu.dbtest.R;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Created by Administrator on 2015/5/5.
 */
public class OriginResources {

    private Context context;

    public OriginResources(Context context) {
        this.context = context;
    }

    public void getResFormAssets() {
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(context.getAssets().open("xushuangshuang.txt"));
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String line = "";
            String result = "";
            while ((line = bufferedReader.readLine()) != null) {
                result += line;
            }
            Log.e("test  getResFormAssets", result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void getResFormRaw() {
        InputStreamReader inputStreamReader = new InputStreamReader(context.getResources().openRawResource(R.raw.xushuangshuang));
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String line = "";
        String result = "";
        try {
            while ((line = bufferedReader.readLine()) != null) {
                result += line;
            }
            Log.e("test  getResFormRaw", result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


执行结果:


因为我使用的是android  studio所以我的目录结构:

gradle进行目录结构的生成,

android 开发中的原生资源_第1张图片

两种阅读的方式,在android环境下,框架已经为我们做了很多事情了

你可能感兴趣的:(android)