相关链接:

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文件操作
  2. Android(安卓)bootanimation 制作过程
  3. android朗读英文
  4. Android问题总结
  5. android intent.setType指定浏览本地多种类型的文件
  6. android 开发上传图片遇到返回 FileNotFoundException
  7. Android获取程序路径 (/data/data/appname)
  8. 用ant实现自动打包android(二) -- android代码混淆
  9. Android——文件操作

随机推荐

  1. Android使用GPS
  2. Android实现开机自启动无效问题
  3. Android(安卓)adb input 命令介绍
  4. Cordova 3.x 源码分析(2) -- cordova.js概
  5. Android的绘制文本对象FontMetrics的介绍
  6. Android完全退出应用程序
  7. android键盘挡住界面
  8. Android(安卓)Priority Job Queue使用(1)
  9. android 中的 edittext属性大全
  10. Android中使用httpclient等小结