异步读取raw文件下大文件的内容
来源:互联网 发布:java web教程 编辑:程序博客网 时间:2024/06/04 22:38
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(); }
0 0
- 异步读取raw文件下大文件的内容
- 读取raw下的文件
- 读取raw文件下的txt文件
- Android 读取raw下的txt文件
- RAW文件的读取
- RAW文件的读取
- Android 读取Raw文件下的db文件
- android 读取raw文件下文件内容
- android 读取assets下和raw下的txt文件
- 医学RAW文件的读取
- android assets/raw 大文件读取
- 异步读取大文件的改进
- 异步读取大文件的改进
- Android用流方式读取raw文件夹中的内容(大文件>1M)
- Android读取asserts和raw文件夹下的文件
- 直接读取raw文件下的视频文件并播放
- android 读取raw下TXT文件
- 读取raw文件
- 使用vim建立文件
- 横向滑动的ListView
- HTTPS和HTTP的区别
- React-native 之 position布局
- unresolved external symbol __endthreadex错误解决
- 异步读取raw文件下大文件的内容
- MySQL简单学习
- 自定义View实现HTML图文环绕效果
- VideoView简单视频播放
- tabhost通过手势滑动切换activity
- ImageView翻转效果
- MongoDb Official Driver Get Collection Names
- 圆形菜单效果
- ParallaxScrollView有视差的ScrollView