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 实现文件(图片)上传
  2. cocos2dx 调用java层代码
  3. android客户端利用sokcet通信和向Java服务端发请求,Java服务端把
  4. 在Android中使用Handler和Thread线程执行后台操作
  5. Android Layout布局文件里的android:layout_height等属性为什么

随机推荐

  1. 关于sql server批量插入和更新的两种解决
  2. 基于Sql Server通用分页存储过程的解决方
  3. 关于SQL 存储过程入门基础(基础知识)
  4. 关于SQL 存储过程入门基础(变量)
  5. 关于SQL 存储过程入门基础(流程控制)
  6. sqlserver (parse name)字符串截取的方法
  7. sql lite 数据库之间表复制的方法
  8. PL/SQL DEVELOPER 使用的一些技巧
  9. sql where 1=1的优缺点分析
  10. SQL Server2012在开发中的一些新特性