当前位置:操作系统 > 安卓/Android >>

assets文件夹资源的访问

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

      1. 先在Activity里面调用getAssets()来获取AssetManager引用。
      2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。
      3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
      4.调用AssetManager.close()关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作
以下为从Raw文件中读取:


[java] public String getFromRaw(){  
            try {  
                InputStreamReader inputReader = new InputStreamReader( getResources().openRawResource(R.raw.test1)); 
                BufferedReader bufReader = new BufferedReader(inputReader); 
                String line=""; 
                String Result=""; 
                while((line = bufReader.readLine()) != null) 
                    Result += line; 
                return Result; 
            } catch (Exception e) {  
                e.printStackTrace();  
            }              
    }  
public String getFromRaw(){
            try {
                InputStreamReader inputReader = new InputStreamReader( getResources().openRawResource(R.raw.test1));
                BufferedReader bufReader = new BufferedReader(inputReader);
                String line="";
                String Result="";
                while((line = bufReader.readLine()) != null)
                    Result += line;
                return Result;
            } catch (Exception e) {
                e.printStackTrace();
            }            
    }
 

以下为直接从assets读取


[java] public String getFromAssets(String fileName){  
            try {  
                 InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) );  
                BufferedReader bufReader = new BufferedReader(inputReader); 
                String line=""; 
                String Result=""; 
                while((line = bufReader.readLine()) != null) 
                    Result += line; 
                return Result; 
            } catch (Exception e) {  
                e.printStackTrace();  
            } 
    }  
public String getFromAssets(String fileName){
            try {
                 InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) );
                BufferedReader bufReader = new BufferedReader(inputReader);
                String line="";
                String Result="";
                while((line = bufReader.readLine()) != null)
                    Result += line;
                return Result;
            } catch (Exception e) {
                e.printStackTrace();
            }
    }
 

当然如果你要得到内存流的话也可以直接返回内存流!

 

摘自 agods--足迹
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,