使用volley读取压缩文件的内容(zip、gz)
来源:互联网 发布:西门子触摸屏编程手册 编辑:程序博客网 时间:2024/05/22 08:06
volley无法直接读取gzip文件,最后通过重写了Request实现了对gzip文件读取
package com.partjob.commonjar.okhttp;import com.android.volley.NetworkResponse;import com.android.volley.ParseError;import com.android.volley.Request;import com.android.volley.Response;import com.android.volley.toolbox.HttpHeaderParser;import com.android.volley.Response.Listener;import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.zip.GZIPInputStream;/** * 读取压缩文件 */public class GZipRequest extends Request<String> { private final Listener<String> mListener; public GZipRequest(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) { super(method, url, errorListener); mListener = listener; } /** * Creates a new GET request. * * @param url URL to fetch the string at * @param listener Listener to receive the String response * @param errorListener Error listener, or null to ignore errors */ public GZipRequest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) { this(Method.GET, url, listener, errorListener); } @Override protected void deliverResponse(String response) { mListener.onResponse(response); } @Override protected Response<String> parseNetworkResponse(NetworkResponse paramNetworkResponse) { String str1 = ""; try { GZIPInputStream gzipInputStream = new GZIPInputStream( new ByteArrayInputStream(paramNetworkResponse.data)); InputStreamReader inputStreamReader = new InputStreamReader( gzipInputStream); BufferedReader bufferedReader = new BufferedReader( inputStreamReader); while (true) { String str2 = bufferedReader.readLine(); if (str2 == null) break; str1 = str1 + str2; } inputStreamReader.close(); bufferedReader.close(); gzipInputStream.close(); return Response.success(str1, HttpHeaderParser.parseCacheHeaders(paramNetworkResponse)); } catch (IOException e) { return Response.error(new ParseError(e)); } }}重写parseNetworkResponse方法就可以实现对gzip文件的读取
1 0
- 使用volley读取压缩文件的内容(zip、gz)
- java不解压读取linux服务器上的zip以及tar.gz压缩文件
- 使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子
- zip创建读取压缩文件
- python读取zip压缩文件
- zip,jar,tar.gz无需解压读取文件内容
- linux tar解压bz2, gz,zip压缩文件
- linux tar解压bz2, gz,zip压缩文件
- 使用zip压缩文件
- 解压tar gz bz2 tgz zip等Linux下的各种压缩文件
- 解压tar gz bz2 tgz zip等Linux下的各种压缩文件
- 解压tar gz bz2 tgz zip等Linux下的各种压缩文件
- 解压tar gz bz2 tgz zip等Linux下的各种压缩文件
- AIX上压缩文件的解压tar.Z tar.gz tgz zip
- [随笔]Linux下常用压缩文件(*.tar.gz *.tar.xz *.zip ...)的解压方法
- [转] 解压tar gz bz2 tgz zip等Linux下的各种压缩文件
- JAVA读取zip文件 JAVA读取压缩文件 解压zip里面的指定格式文件
- 如何解压.gz的压缩文件
- JIRA环境搭建
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- linux系统启动报错:[contains a file system with errors, check forced]的解决方法参考
- [转]使用web.config中的httpHandlers
- Maven报错:Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml
- 使用volley读取压缩文件的内容(zip、gz)
- 语法错误 : 缺少“;”(在“类型”的前面)
- MacBook如何用Parallels Desktop安装windows7/8
- angular 学习网址推荐(持续更新中)
- 网络:使用多线程下载文件
- 关于C/C++中的inline
- rescue the princess 省赛四1
- Oracle 中 decode 函数用法
- C#中的数组