zoukankan      html  css  js  c++  java
  • android中读取原始(Raw)资源

    存储在res/raw位置的文件不会被平台编译,而是作为可用的原始资源。
    读取原始资源非常简单。
    首先调用
    Context.getResource获得当前应用程序上下文的Resources引用.
    然后调用
    openRawResource(int id)得到InputStream.
    最后,操作
    InputStream得到数据。
    注意:把文件放在res/raw目录下,则R类会自动提供该id.
    提速文件读取
    其原理就是读的时候,先把文件的一些数据读到缓冲中。这样的好处是如果读的内容已经在缓冲中,就读缓冲的数据。
    如果没有,就让缓冲先从文件读取数据,然后再从缓冲读数据。这样的好处是减少对文件的操作次数,从而达到提高性能的目的。
    坏处是要额外的内存来做缓冲区.

    示例代码如下:
    InputStream is=resources.openRawResource(R.raw.hubin);
    BufferedInputStream buf = new BufferedInputStream(is);

    示例1
        void readRawFile()
        {
            String content;
           Resources resources=this.getResources();
            InputStream is=null;
            try{
                is=resources.openRawResource(R.raw.hubin);
                byte buffer[]=new byte[is.available()];
                is.read(buffer);

                content=new String(buffer);
                Log.i(tag, "read:"+content);
            }
            catch(IOException e)
            {
                Log.e(tag, "write file",e);
            }
            finally
            {
               if(is!=null)
                {
                    try{
                    is.close();
                    }catch(IOException e)
                    {
                        Log.e(tag, "close file",e);
                    }
                }
            }
        }

    转自:http://hubingforever.blog.163.com/blog/static/17104057920105164250608/

  • 相关阅读:
    编程中的幂等性 — HTTP幂等性
    mysql 批量更新常用操作
    CSS2中的伪类与伪元素
    JavaScript使用小技巧
    javascript原型与原型链
    js数据类型
    CSS3 选择器——伪类选择器
    MySQL: ERROR 1040: Too many connections
    HTML DOM的总结
    深入浅出 妙用Javascript中apply、call、bind【转】
  • 原文地址:https://www.cnblogs.com/bmate/p/2672105.html
Copyright © 2011-2022 走看看