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 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 studio调整默认的debug.keystore位置。
  2. Android之自定义ProgressBar
  3. Android应用程序键盘(Keyboard)消息处理机制分析(12)
  4. android客户端利用sokcet通信和向Java服务端发请求,Java服务端把
  5. android ProgressBar 的使用
  6. android getResources的作用
  7. Android(安卓)文件的保存与读取之SDCard(SD卡)存储
  8. Android(安卓)DEV : setOnClickListener() vs. android:onClick
  9. 获取apk信息工具(android SDK的aapt工具)

随机推荐

  1. Android官方入门文档[3]构建一个简单的用
  2. TextVview的属性
  3. Android Studio中Gradle使用详解
  4. Android OnTouchListener实时监听触点坐
  5. android 下载文件注意事项
  6. android 如何判断软件是否第一次运行?
  7. Android TextView中链接(link)点击事件的
  8. Android 动画旋转效果
  9. Android(安卓)UI开发第三十九篇——Tab界
  10. android 拖动条改变屏幕亮度