解压缩GZIPInputStream中使用GZipStream(C#)压缩的响应流

时间:2014-07-28 17:20:26

标签: java gzip

我正在尝试从.net中间件解压缩响应。响应已使用GZipStream进行了划分。

GZipStream zipStream = new GZipStream(fileStream, CompressionMode.Compress, true);

当我在java中使用GZIPInputStream来解压缩文件时。我在下面的代码中收到带有“not in zip format”消息的IOException。

GZIPInputStream gzin = new GZIPInputStream(response);

我也试过了。

    ByteArrayInputStream memstream = new ByteArrayInputStream(buffer2);   
  GZIPInputStream gzin = new GZIPInputStream(memstream);

欢迎任何帮助或建议。 提前致谢

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

 GZIPInputStream gis = null;
 FileOutputStream fos = null;
 try {
     gis = new GZIPInputStream(new FileInputStream("pathOfTheGZipFile"));
     fos = new FileOutputStream("pathOfDecompressedFile");
     byte[] buffer = new byte[gis.available()];
     int len;
     while((len = gis.read(buffer)) != -1){
         fos.write(buffer, 0, len);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }
 finally {
     fos.close();
     gis.close();  
 }

答案 1 :(得分:0)

我终于找到了解决方案,在服务器返回的响应中,前几个字节没有压缩,所以如果任何一个面临同样的问题,你只需要检查字节。从响应中删除这些字节后。它开始运作了。