异步读取raw文件下大文件的内容
2017-04-10 18:49
351 查看
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(); }
相关文章推荐
- 读取raw文件下文件内容
- 异步 进程 读取文件内容
- android文件操作――读取assets和raw文件下的内容
- 关于AysncController的一次测试(url重写后静态页文件内容的读取是否需要使用异步?)
- android 读取raw文件下文件内容
- 读取XML文件内容的简单方法
- 读取INI配置文件内容(源文件C)
- 使用Java读取Excel文件内容
- 将TXT文件上传的服务器上并将读取内容绑定到DataTable进行验证
- 直接读取上传文件的内容
- 读取TXT文件内容的方法
- 如何读取XML文件内容!
- 使用FileReader和FileWriter读取写入文件内容
- [导入]不经保存,直接读取上传文件的内容
- 不保存直接读取上传文件的内容!
- Java读取文件内容并转换为字符串
- 读取TXT文件内容的方法
- [收藏].Net如何读取Excel文件中的内容
- 使用Java读取Excel文件内容
- 关于ePass1000在B/S结构下的文件内容读取(VBSCRIPT)