Android从raw、assets、SD卡中获取资源文件内容

先顺带提一下,raw文件夹中的文件会和project一起经过编译,而assets里面的文件不会~~~  
另外,SD卡获取文件需要权限哦!
  1.   //从res文件夹中的raw 文件夹中获取文件并读取数据  
  2.     public String getFromRaw(){  
  3.         String result = "";  
  4.             try {  
  5.                 InputStream in = getResources().openRawResource(R.raw.data);  
  6.                 //获取文件的字节数  
  7.                 int lenght = in.available();  
  8.                 //创建byte数组  
  9.                 byte[]  buffer = new byte[lenght];  
  10.                 //将文件中的数据读到byte数组中  
  11.                 in.read(buffer);  
  12.                 result = EncodingUtils.getString(buffer, "UTF-8");  
  13.             } catch (Exception e) {  
  14.                 e.printStackTrace();  
  15.             }  
  16.             return result;  
  17.     }  
  18.       
  19.     //从assets 文件夹中获取文件并读取数据  
  20.     public String getFromAssets(String fileName){  
  21.         String result = "";  
  22.             try {  
  23.                 InputStream in = getResources().getAssets().open(fileName);  
  24.                 //获取文件的字节数  
  25.                 int lenght = in.available();  
  26.                 //创建byte数组  
  27.                 byte[]  buffer = new byte[lenght];  
  28.                 //将文件中的数据读到byte数组中  
  29.                 in.read(buffer);  
  30.                 result = EncodingUtils.getString(buffer, "UTF-8");  
  31.             } catch (Exception e) {  
  32.                 e.printStackTrace();  
  33.             }  
  34.             return result;  
  35.     }  
  36.     //从SD卡文件夹中获取文件并读取数据

        public static String readFileAsString(String filePath) throws IOException {

    File f=null;

    f= new File(filePath);//这是对应文件路径全名

            StringBuffer fileData = new StringBuffer();

            InputStream in = null;

      try {

        in = new BufferedInputStream(new FileInputStream(f));

      } catch (FileNotFoundException e3) {

        e3.printStackTrace();

      }

            BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));

            

            char[] buf = new char[1024];

            int numRead=0;

            while((numRead=reader.read(buf)) != -1){

                String readData = String.valueOf(buf, 0, numRead);

                fileData.append(readData);

            }

            reader.close();

            return fileData.toString();

        }

 

posted on 2013-08-26 20:16  you Richer  阅读(551)  评论(0)    收藏  举报