Not in GZIP format异常

java.util.zip.ZipException Unexpected end of ZLIB input stream Not in GZIP format Caused by: java.io.EOFException: Unexpected end of ZLIB input stream Caused by: java.util.zip.ZipException: Not in GZIP format 阅读详情

背景

开发中解压缩和压缩文件的处理是很常遇到的情况。这几天做一个对账的功能的时候,遇到过一个解压gzip压缩文件,报错:Not in GZIP format 的异常问题。组内咨询了其他同事,网上找遍了各种解决方案,

最后因为对方上传压缩文件的时候,把原始zip格式改为gzip格式了。导致怎么解压都是没法解决,把问题解决过程重新梳理一遍,也供同样遇到此类问题的你们一个参考。

过程

简单把我们自己解压方认为是A,FTP服务器称为是B,对方上传文件方称为C。C从第三方平台下载的原始压缩文件格式为:ZIP格式,C上传到FTP服务器B上时的格式为GZIP。压缩文件中的附件表格格式为csv,可以用Excel打开,也可以用文本打开。

我方去FTP上下载下来后,解压缩文件的时候,一直报错如下:

字面意思理解非常简单:不是GZIP格式的文件,但是由于太过相信和依赖C方,一直在寻找本身程序的问题,尝试了网上各种解压GZIP文件的方法,都是于事无补。

解决

让对方C把压缩文件还原成原始格式ZIP文件后,解压正常。问题得到解决。

顺便贴一下解压代码

1、解压缩文件

			ZipFile zip = new ZipFile(new File(fileName), Charset.forName("GBK"));//解决中文文件夹乱码
			InputStream  zipInputStream =  null;
			for (Enumeration<? extends ZipEntry> entries = zip.entries(); entries.hasMoreElements();){
				ZipEntry entry = entries.nextElement();
				String zipEntryName = entry.getName();
				if(StringUtils.isNotEmpty(zipEntryName) && !zipEntryName.contains("汇总")){
					zipInputStream = zip.getInputStream(entry);
				}
			}
ZipFile zip = new ZipFile(new File(fileName), Charset.forName("GBK")); 有效解决中文乱码问题,以原始文件的编码为准。这里是 GBK
ZipEntry entry = entries.nextElement();  为得到下解压文件中的下一个附件文件流,通常附件格式:xls、xlsx、csv、txt等。
String zipEntryName = entry.getName();   当压缩文件中,含有多个附件文件的时候,需要得到某个具体文件名的文件。

2、解析附件

    BufferedReader reader = new BufferedReader(new InputStreamReader(zipIn,"GBK"), inputStreamCache);
    CSVReader csvReader = new CSVReader(reader, ',');
    String[] record = null;
    if((record = csvReader.readNext()) != null ){
        System.out.println(record[0]);
        System.out.println(record[1]);
        System.out.println(record[2]);
        System.out.println(record[3]);
        ...
    }
BufferedReader 读取文件流,这里的 new InputStreamReader(zipIn,"GBK") 编码格式保持跟前面一致,才不会乱码。 
CSVReader csvReader = new CSVReader(reader, ',');  以csv格式解析文件并读取数据。

最后循环遍历附件表格的数据,String[] record 代表表格中数据的行记录数组,每一行又以表格的列数读取具体数据值:record[0]、record[1]、record[2]...

业务逻辑自己封装处理即可。

 

 

 

安卓编译报错Execution failed for task ‘:expo-modules-core:prepareBoost‘. Not in GZIP format的解决方案 安卓编译报错Execution failed for task ':expo-modules-core:prepareBoost'. Not in GZIP format的解决方案 阅读详情

相关推荐

linux使用tar解压出现 gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not 的解决方法

当你看到这篇文章的时候,不是一种治根的方法,甚至不能给你帮助但多少给你提示,文件格式一开始就错了,不要在尝试解决方法,直接换方式下载正确的格式文件。

码农研究僧的博客 1万+

Linux tar打包命令详解

Linux 系统中,最常用的归档(打包)命令就是 tar,该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档。不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包。 使用 tar 命令归档的包通常称为 tar 包(tar 包文件都是以“.tar”结尾的)。 tar命令做打包操作 当 tar 命令用于打包操作时,该命令的基本格式为: [root@lo...

大数据linux基础学习 5万+

Android Display Graphics #1 整体框架介绍一

手机屏上显示的内容,2D或3D ,如果是 3D 的,不管是 App 还是游戏,或者简单的图片界面,底层都是通过 GPU、 通过 OpenGL(ES)绘制出来的。是Java层的一个类,提供了一系列API,使用这些API可以实现各种的产品经理要求的效果。显示的不同阶段对这块内存的叫法不同,在上层可以是Window、ANnativeWindow、Surface、SurfaceView、layer、buffer,这些本质上没啥区别,可以广泛意义上理解为用于显示内容的那块内存,只不过各个阶段的操作接口不同。

oDwyane03的博客 1385

【linux】解压.gz文件 报错 gzip:stdin:not in gzip format(已解决)

linux 解压.gz文件时遇到 报错gzip:stdin:not in gzip format

Wynne的博客 6万+

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践

USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移

weixin_29178069的博客 334

CS1237卡尔曼滤波实战:如何用24位ADC实现电子秤级精度?

本文详细介绍了如何利用CS1237 24位ADC芯片结合卡尔曼滤波算法实现电子秤级精度测量。通过解析CS1237硬件特性、卡尔曼滤波原理及STM32驱动优化,提供了一套完整的解决方案,包括多通道支持、驱动代码实现和性能调优技巧,适用于工业测量和嵌入式开发领域。

linux的博客 1087

处理not in gzip format异常

当我们使用GZIPInputStream的read方法进行读取数据时,它会自动处理gzip格式的压缩数据,将它解析成原始的二进制数据。但是,如果你没有将原始数据进行gzip压缩后传入GZIPInputStream流,进行read读取时,就会抛出not in gzip format异常。话不多说上代码!再读取数据时就会抛异常。

m0_50677223的博客 1637

YOLOv11 改进 - 注意力机制 | 空间增强注意力SEAM(Spatially Enhanced Attention Module)提升遮挡场景检测鲁棒性

本文介绍了分离与增强注意力模块(SEAM)在YOLOv11中的结合应用。SEAM模块旨在增强面部特征学习能力,特别是处理面部遮挡问题。它采用多头注意力机制强调面部区域、抑制背景区域,第一部分使用深度可分离卷积减少参数并学习通道重要性,通过1x1卷积增强通道联系,利用两层全连接网络融合通道信息,经指数归一化后作为注意力权重与原始特征相乘。我们将SEAM集成到YOLOv11的检测头中,并进行相关注册和配置。实验表明,该方法有助于提升模型检测性能。

魔改工程师的博客 1664

java.util.zip.ZipException: Not in GZIP format异常的产生原因及解决方法

java.util.zip.ZipException: Not in GZIP format异常的产生原因及解决方法

荣耀之路 5万+

2万字大厂面经:小米嵌入式面试题及参考答案(持续更新)

BIOS (Basic Input/Output System) 是一种存储在ROM中的固件程序,它为计算机提供了最基础的硬件初始化和服务。BIOS主要存在于传统的x86架构计算机中。嵌入式系统的启动流程取决于具体的硬件平台和所采用的操作系统。复位阶段:当系统通电或复位时,CPU进入复位状态。硬件初始化:CPU和必要的硬件设备(如内存控制器)被初始化。加载引导加载程序:引导加载程序(如U-Boot)被加载到内存中。执行引导加载程序:引导加载程序开始执行,初始化更多的硬件设备,并检测存储介质。

大模型大数据攻城狮的专栏 2529

015、架构_配置文件_管理节点(proxymanager.ini)

该配置文件中的参数在后台配置,两种生效方式:*所有参数重启生效。*部分参数可以使用工具dbtool动态生效。动态生效命令为:dbtool-pm-load-config。配置文件“proxymanager.ini”用于设置元数据管理模块的信息。文件路径为“~/etc”。配置文件“proxymanager.ini”是普通的文本文件。默认值proxymanager-alarmconfutf8.txt。配置错误或不配置,PM无法连接MDS,无法服务。获取元数据失败超时处理时间。异常时请求启动对等回滚。

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 328

Linux-tar-解压异常,报错gzip: stdin: not in gzip format

今天在Linux下安装erlang环境的时候,用“tar -zxvf otp_src_19.1.tar.gz”,然后就报这个错: gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error exit delayed from previous errors 一开始我以为是压缩包坏的,去下载其他的...

only 1万+

8155源码编译DSP(ubuntu环境下)

一.设置环境变量 -users:/$ sudo gedit ~/.bashrc #set adsp cdsp tools path #export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO> #export ARMTOOLS=RVCT221 #export ARMROOT=/pkg/asw/compilers/arm/ADS1.2 #export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/2.2BLD593

Johnny2004的专栏 1676

NUTCH中的not in gzip format异常处理

Nutch爬虫爬取某网页是出现下列异常: ERROR http.Http (?:invoke0(?)) - java.io.IOException: unzipBestEffort returned nullERROR http.Http (?:invoke0(?)) - at org.apache.nutch.protocol.http.api.HttpBase.processGzipEnco...

iteye_8793的博客 228

K-BERT: Enabling Language Representation with Knowledge Graph 代码复现 直接运行

K-BERT: Enabling Language Representation with Knowledge Graph K-BERT K-BERT 代码复现

1073

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java.util.zip.ZipException: Not in GZIP format异常

Java程序中报解压的文件异常,文件压缩格式可能是错误造成(没有用gzip格式压缩) 如图 刚开始压缩文件夹,我直接使用的zip格式压缩,然后更改其后缀 (.tar.gz) ,但是最后发现没有效果;所以需要重新压缩文件。 步骤如下: 1.我使用的工具 “ Bandizip”; 2.将文件夹添加到工具中,先将其压缩为(.tar)格式; 3.将tar格式的压缩文件再次添加到工具中,在压缩为(.gz)格式; 4.最后就好了 ...

weixin_48133875的博客 3572

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

feign请求下游,下游响应格式为GZIP解析异常【Not in GZIP format executing】

请求下游的那个类的feign的头位置新增 configuration = GzipFeignConfiguration.class。上边为遇到的问题豆包+mimo查询了很多方式最后给的有效的,进行记录。

L_season的博客 21

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java.util.zip.ZipException: Not in GZIP format

报错场景:使用RestTemplate请求接口(POST),报如下错误。 解决方式: HttpHeaders headers = new HttpHeaders(); headers.set(HttpHeaders.ACCEPT_ENCODING, "\t"); 参考链接:https://www.cnblogs.com/timssd/p/5499490.html 其他参考链接:https://www.jianshu.com/p/bf9d78db63ac https://stackove.

csdn_1126995331的博客 2189

java.util.zip.zipeception:Not in GZIP format解决办法

java.util.zip.zipeception:Not in GZIP format

w先生的博客 3621

Java字符串的GZIP压缩和解压

Java字符串的GZIP压缩和解压

荣耀之路 5347

PrimeFaces:java.io.IOException:不是GZIP格式

最近,在PrimeFaces的idleMonitor组件上进行了测试。 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="ht...

一名可爱的技术搬运工 387

Linux-解决tar解压文件时报错“gzip: stdin: not in gzip format”

遇到的问题:在安装Nginx时,用wget下载Nginx安装包后,使用tar命令进行解压,结果提示如下报错 [root@host~]# ll -rwxrwxrwx. 1 root root 1087 Aug 24 21:55 nginx-1.18.0.tar.gz [root@host~]# tar -zxvf nginx-1.18.0.tar.gz gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is n.

JiangDong的博客 1万+

HttpClient Not in GZIP format的解决办法

在用HttpClient抓取图片的过程中,提示如下错误: Exception in thread &quot;main&quot; java.util.zip.ZipException: Not in GZIP format at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:165) at java.util.zip...

甘焕的博客 1万+

gzip: stdin: not in gzip format

异常问题: gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 原因是这个压缩包没有用gzip格式压缩,所以不用加z指令 # tar -xvf name.tar.gz ...

云下的你 884

未能解决bug之java.io.IOException: Not in GZIP format

问题描述: 今天遇到个奇怪的bug:java.io.IOException: Not in GZIP format            源码呈现:            package com.beyond.hibernate.common; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStre

z_x_1000的专栏 1万+

【Linux】解决Linux上解压jdk报错gzip: stdin: not in gzip format

完美解决Linux上执行 #tar -xvf jdk-8u131-linux-x64.tar.gz命令后报错问题 gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not r

程序猿的故事 10万+
上一篇: 坚持写博客以来的感受和改变
下一篇: 总结一下2020年读了几本书
程序大视界
程序大视界 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄14年 3万+粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值