Android,如何从URL加载'gz'文件并在加载时自动解压缩内容?

时间:2012-11-12 08:28:35

标签: android http gzip

  

可能重复:
  Android: HTTP communication should use “Accept-Encoding: gzip”

我的Android应用程序下载temp.bin文件,但今天它(文件)太大了。我使用temp.bin.gz将Apache配置为将其压缩为gzip。所以我从实际尺寸中得到了10%。

到目前为止一切顺利。现在问题是在下载过程中如何在Android端解压缩。

我之前在下载算法的片段中使用过:

    URL url = new URL(urlStr);

        // set redirect mode ...        
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setInstanceFollowRedirects(true);

        connection.setConnectTimeout(0);
        connection.setReadTimeout(0);
        connection.setUseCaches(false);
        connection.setAllowUserInteraction(false);

        connection.connect();  

                    ....

InputStream in = null;
        //boolean lengthValid = (contentLength != -1); 

        byte    bytes[] = new byte[256];
        int     total_count = 0;
        int     max_count = 0;

        try {
            in = connection.getInputStream();
            int count = 0;


            while (count != -1){
                count = in.read(bytes);
  ....

非常感谢任何和所有建议。

1 个答案:

答案 0 :(得分:2)

只需使用java.util.zip.GZIPInputStream代替InputStream

Also See