ioszip怎么解压_unzip解压命令

ioszip怎么解压_unzip解压命令最近做的一个东西中,需要从网络获取xml文件,但是该文件用了gzip压缩的。搜索一下有人说gzip压缩的用urlrequest可以自己解压,但是这必须从服务器返回的header中有accept-Encoding说明是gzip的。也就是用这句就可以实现自解压:[urlRequestaddValue:@”gzip”forHTTPHeaderField:@”Accept-Encodi

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近做的一个东西中,需要从网络获取xml文件,但是该文件用了gzip压缩的。搜索一 下有人说gzip压缩的用urlrequest可以自己解压,但是这必须从服务器返回的header中有accept-Encoding说明是gzip 的。也就是用这句就可以实现自解压:

[urlRequest addValue:@”gzip” forHTTPHeaderField:@”Accept-Encoding”];

这个在我的项目中没有作用,因为服务器返回的header中没有Accept-Encoding的说明。这就需要手动解压了!解压需要导入libz.1.2.3.dylib库,导入#import “zlib.h”

下面是解压的代码:

 

-(NSData *)uncompressZippedData:(NSData *)compressedData  

{  

 

    if ([compressedData length] == 0) return compressedData;  

 

    unsigned full_length = [compressedData length];  

 

    unsigned half_length = [compressedData length] / 2;  

    NSMutableData *decompressed = [NSMutableData dataWithLength: full_length + half_length];  

    BOOL done = NO;  

    int status;  

    z_stream strm;  

    strm.next_in = (Bytef *)[compressedData bytes];  

    strm.avail_in = [compressedData length];  

    strm.total_out = 0;  

    strm.zalloc = Z_NULL;  

    strm.zfree = Z_NULL;  

    if (inflateInit2(&strm, (15+32)) != Z_OK) return nil;  

    while (!done) {  

        // Make sure we have enough room and reset the lengths.  

        if (strm.total_out >= [decompressed length]) {  

            [decompressed increaseLengthBy: half_length];  

        }  

        strm.next_out = [decompressed mutableBytes] + strm.total_out;  

        strm.avail_out = [decompressed length] – strm.total_out;  

        // Inflate another chunk.  

        status = inflate (&strm, Z_SYNC_FLUSH);  

        if (status == Z_STREAM_END) {  

            done = YES;  

        } else if (status != Z_OK) {  

            break;  

        }  

 

    }  

    if (inflateEnd (&strm) != Z_OK) return nil;  

    // Set real length.  

    if (done) {  

        [decompressed setLength: strm.total_out];  

        return [NSData dataWithData: decompressed];  

    } else {  

        return nil;  

    }  

}

以上是一个网上很容易搜索到的解压方法,正确,但是有个问题,就是,原文章中提到了zip,导致容易认为也可以解压zip。但是 经过验证这个方法是无法解压zip格式的压缩文件的。  解压gzip文件还是相当好用的。 

标记一下,gzip和zip文件并不是一个扩展名那么简单,压缩算法上有很大差异。 只是很多压缩软件做了屏蔽,让人感觉不到他们的差别了。  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197205.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月11日 下午10:01
下一篇 2025年9月11日 下午10:43


相关推荐

  • Java课程设计——学生成绩管理系统

    Java课程设计——学生成绩管理系统Java课程设计题目:学生成绩管理系统摘要在现今信息时代,生活速度的加快,使得人们越来越向信息化、数字化发展。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,尤其是学生的考试成绩数据。面对庞大的学生的成绩,需要有学生成绩管理系统来提高学生管理工作的效率。介于此提出了学生成绩管理系统,学生管理系统是计算机对学生档案信息进行管理,具有手工管理无可比拟的优点,如索检迅速、查找方便、可靠性高、存储量大等有点。现在我国的大中专院校的学生成绩管理水平正在不断提高,停留在纸介质

    2022年7月17日
    16
  • 标准化和归一化,请勿混为一谈,透彻理解数据变换[通俗易懂]

    标准化和归一化,请勿混为一谈,透彻理解数据变换[通俗易懂]标准化与归一化1、标准化(Standardization)和归一化(Normalization)概念1.1、定义1.2、联系和差异一、联系二、差异1.3、标准化和归一化的多种方式2、标准化、归一化的原因、用途3、什么时候Standardization,什么时候Normalization4、所有情况都应当Standardization或Normalization么5、一些其他的数据变换方式5.1、l…

    2022年6月23日
    37
  • python注释多行代码快捷键_python粘贴快捷键

    python注释多行代码快捷键_python粘贴快捷键Pycharm有着丰富且强大的快捷键组合,如果能熟练掌握常见快捷键的使用,那么绝对能提高你代码的编写效率和质量。之前写过一篇Pycharm常用的10个windows快捷键Pycharm最高效的快捷键集合,当然这只是快捷键中的很小一部分,还有很多高效的快捷键没有介绍到,今天就把所有的快捷键进行统一整理,包括windows和mac下的快捷键集合,便于后期查阅使用(文末附下载方式)。Pycharm常用快…

    2022年8月26日
    9
  • 智能优化算法:麻雀搜索算法-附代码「建议收藏」

    2020智能优化算法:麻雀搜索算法-附代码文章目录2020智能优化算法:麻雀搜索算法-附代码1.算法原理2.算法结果3.参考文献4.Matlab代码摘要:麻雀搜索算法(SparrowSearchAlgorithm,SSA)是于2020年提出的。SSA主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点1.算法原理建立麻雀搜索算法的数学模型,主要规则如下所述:发现者通常拥有较高的能源储备并且在整个种群中负责搜索到具有丰富食物的区域,为所有的加

    2022年4月9日
    49
  • JavaScript高级程序设计学习总结一

    JavaScript高级程序设计学习总结一一,JavaScript的实现JavaScript和ECMAScript通常都被人认为是相同的含义,JavaScript的含义比ECMAScript规定要多的多。一个完整的的JavaScript实现应该由三个不同的部分组成。核心(ECMAScript的) 文档对象模型(DOM) 浏览器对象模型(BOM)二,ECMAScript中是由ECMA-262定义的,ECMASc…

    2022年8月22日
    8
  • python的image读取的图片是什么类型的_python读取图片数据

    python的image读取的图片是什么类型的_python读取图片数据Python读取图片尺寸、图片格式需要用到PIL模块,使用pip安装Pillow.Pillow是从PILfork过来的Python图片库。fromPILimportImageim=Image.open(filename)#返回一个Image对象print(‘宽:%d,高:%d’%(im.size[0],im.size[1]))Image类的属性##PIL.Image.format图片…

    2025年10月29日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号