相关链接:

Android 读取文件
http://www.eoeandroid.com/thread-97495-1-1.html

Android 私有文件夹 文件的写入与读取
http://www.eoeandroid.com/thread-69378-1-1.html

Android 读取文件内容操作
http://www.eoeandroid.com/thread-82295-1-1.html

----------------------帖子正文-----------------------------

AsyncTask,异步处理,主要用于将比较耗时的操作从主线程(UI线程)中分离出来处理,提高运行速度(流畅度)。本来是要学习AsyncTask的,当看到耗时操作时就考虑到了读取大文件操作,然后自己试着读取raw文件夹下面的文件。
有两种方式读取,一种是按行读取,一种是按大小读取;
主要代码如下:
一:按行读取

class FileReadTask extends AsyncTask<String, String, String> {                 String line_str;                 String result;                 Context context;                 FileReadTask(Context context) {                         this.context = context;                 }                 int i = 0;                 @Override                 protected String doInBackground(String... params) {                         BufferedReader reader = new BufferedReader(new InputStreamReader(                                         context.getResources().openRawResource(R.raw.test2)));                         try {                                 while ((line_str = reader.readLine()) != null                                                 && !(line_str = reader.readLine()).equals("")) {                                         result += line_str;                                         System.out.println("line_str:"+line_str);                                         publishProgress(line_str);                                 }                                 System.out.println("result:"+result);                         } catch (IOException e) {                                 e.printStackTrace();                         }                         return line_str;                 }                 @Override                 protected void onPostExecute(String result) {                         super.onPostExecute(result);                 }                 @Override                 protected void onPreExecute() {                         super.onPreExecute();                 }                 @Override                 protected void onProgressUpdate(String... values) {                         super.onProgressUpdate(values[0]);                         System.out.println("values:" + values[0]);                         array.add(values[0]);                         adapter.notifyDataSetChanged();                 }         } 

二:按大小读取

InputStream input = context.getResources().openRawResource(R.raw.test2);                 String result = null;                 int i;                 byte[] by = new byte[128];//每次读取大小                 try {                         while((i = input.read(by))>0){                                 byte[] bys = new byte[i];                                 input.read(bys,0,i);                                 String s = new String(bys);                                 result +=s;                                 System.out.println(s);                         }                 } catch (IOException e) {                         e.printStackTrace();                 }

更多相关文章

  1. android intent.setType指定浏览本地多种类型的文件
  2. 修改文件夹权限
  3. Android——文件操作
  4. Android下使用Properties文件保存程序设置
  5. android解析xml文件 Android DOM解析XML之全球实时地震信息列表
  6. android 删除文件,打开指定的文件类型
  7. Android Studio2.0引入so文件(亲测)
  8. eclipse创建android项目,无法正常预览布局文件
  9. Android lint 删除无用图片文件和配置文件

随机推荐

  1. PHP在PC端实现微信扫码支付模式二
  2. WS-Trust没有使用PHP进行身份验证
  3. 如果使用Select2 YII2选择第一个字段,请在
  4. 求助~~~php5.2.6装不上!
  5. 关于静态方法不能调用类中的非静态属性的
  6. 我无法以正确的方式放置最后一个div。而L
  7. 修改magento简报输入框大小
  8. ThinkPHP3.2学习——路由_路由定义
  9. PHP - 函数 & 检测函数/类/方法是否存在
  10. 通过PHP或jQuery刷新cart_fragments(迷你