问题标签 [gzipoutputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
623 浏览

java - Java gzip - GZIPOutputStream 不关闭/任意压缩

在这个线程的帮助下,我能够编写一个decompress()和一个compress()函数。我的程序以 gzip 格式接收数据,对其进行膨胀,有时对其进行修改,然后再次重新压缩并发送。经过数小时的头痛和错误跟踪,我发现有时(!)GZIPOutputStream我使用的只是无法正确关闭。我可以冲洗它,但在那之后,什么也没有发生。但是,在其他时候,它只是有效>。>

这是我的compress()方法的代码。

出于调试目的,我添加了一些 System.Outs。控制台输出如下:

之后,什么也没有发生。任何有关此问题的帮助将不胜感激!

0 投票
0 回答
943 浏览

java - 错误:不是 GZIP 格式 - 尝试解压缩以前存储在数据库字段中的 GZIP 流

流媒体让我感到困惑 - 就在我认为我掌握了这个想法时,我的代码就崩溃了。

我正在尝试接收一个字符串,gzip 压缩它,并将其存储在 PostGreSQL 数据库中。然后我想把它拿回来并重新转换成输出流。当我尝试将流读入 GZIPstream 时,错误发生在我的“get”函数中。错误是:

java.util.zip.ZipException:不是 GZIP 格式

这是用于压缩字符串然后将其放入数据库的函数:

这是我尝试检索它时的代码(引发错误):

再次,错误“java.util.zip.ZipException: Not in GZIP format”发生在“GZIPInputStream gzipStream = new GZIPInputStream(stream);”行中

哈!我究竟做错了什么?

0 投票
1 回答
867 浏览

java - Java - 压缩大字符串

在我的 Java 应用程序中,我从一些计算中得到一个非常长的字符串(从非常长的字符串中,我的意思是大约 600000 个字符左右)。但我需要将此字符串发送给客户端进行处理,因此我需要压缩字符串最多为 1000 个字符。

我尝试过使用 GZIPOutputStream 以及 Inflater 和 Deflater 类,在最好的情况下,我得到了一个 300000 个字符的输出字符串,这是很好的压缩,但在我的情况下还不够。

我也试过压缩字符串n次,但是输出比上一次大,所以只有一次压缩成功。

那么,你建议我尝试什么?

谢谢你。

0 投票
1 回答
1413 浏览

java - 如何在 java 中将 .zip 压缩为 .gz?

我想将普通文件压缩为 .zip,然后将其压缩为 gzip 文件而不创建新文件。

例如,假设我有一个 pdf 文档doc.pdf,我必须得到的是:doc.pdf.zip.gz

我不想创建一个名为的新文件doc.pdf.zip,然后打开它并压缩它。

我正在使用服务器从浏览器中获取文件并将其返回,这是我的功能:

我得到一个文件doc.pdf.zip.gz,但它有一个损坏的文件doc.pdf并且没有压缩,为什么?

0 投票
1 回答
116 浏览

java - 从 Java 程序向 .Net 程序发送字符串

我需要从 Java 程序向 .Net 程序发送一个字符串。

我想从 Java 中获取一个字符串并使用 GZIPOutputStream 对其进行压缩,然后使用来自 .Net 的 System.IO.Compression.GZipStream 对其进行解压缩。

目前我有它,以便它从 Java 程序返回一个字节 []。但是有没有办法将 byte[] 变成一个字符串并将字符串发送到.Net?并且能够将字符串转回 .Net 中的 byte[] 以将其解压缩回字符串?

我在这里有什么选择?我的主要目标是将压缩字符串发送到 .Net 程序。压缩是不可能的吗?

谢谢。

0 投票
2 回答
51 浏览

android - 使用 GZIPOutputStream 时图像未上传到服务器

我可以在不使用GZIPOutputStream服务器的情况下上传图像。但我有使用要求GZIPOutputStream。所以我用过:

在这里我可以看到

表示文件已压缩,但图像未上传到服务器。

我看不到这句话意味着没有成功。我也没有收到任何类型的错误、警告等。

那么任何人都可以有一个想法吗?高级帮助将不胜感激!

0 投票
2 回答
996 浏览

java - 如何 gzip 一个 InputStream 并返回一个 InputStream?

我从 HTTP 请求的响应开始:

我需要对该响应进行 gzip 压缩,以便将其上传到 s3 并将其压缩保存:

我知道我可以将byte[]数组取出,responseInputStream然后将它们压缩成一个新的InputStream. 但是,对于大量数据,这可能非常低效。

我知道在 SO 上也有人问过类似的问题,但我还没有找到任何似乎可以解决从 a 开始InputStream并以 gzipped 结束的特定需求InputStream

谢谢你的帮助!

0 投票
0 回答
1051 浏览

java - 如何在不转到 Java 文件系统的情况下 gzip 然后解压缩字符串?

期望:
创建压缩和解压缩字符串或字节数组。之后,我计划对它进行 Base64 编码以写入日志文件。

不幸的是,它似乎没有将其识别为被压缩或其他东西。我假设它缺少一些元数据字节,但找不到我需要的东西。

输出: 在此处输入图像描述

测试类:

0 投票
1 回答
6423 浏览

java - java.io.IOException:写入“”字节的请求超出了“条目”的“字节”标头中的大小

我正在tar.Gzip使用创建一个文件,GZIPOutputStream并且我添加了另一个逻辑,如果在压缩文件时捕获到任何异常,我的代码将重试 3 次。

当我抛出一个IOException来测试我的重试逻辑时,它抛出一个下面的异常:
java.io.IOException: request to write '4096' bytes exceeds size in header of '2644' bytes for entry 'Alldbtypes'

我在线上遇到异常:org.apache.commons.io.IOUtils.copyLarge(inputStream, tarStream);

0 投票
0 回答
440 浏览

java - 如何使用 GZIP 压缩的字节数组发送邮件并将其重命名为 **.csv.gz?

我正在尝试使用 GZIP 压缩的字节数组发送邮件,然后用 **.csv.gz 重命名它。但是,我无法打开 **.csv 文件,它显示文件已损坏。

我通过以下代码发送它:


我尝试了许多 mime 类型,但它不起作用:

此附件发送成功,但是当我用 7-zip 打开它并尝试压缩它时,它显示此文件已损坏

有没有办法解决这个问题?

我认为这是由我用 **.csv.gz 重命名它时的格式引起的,但 **.csv.gz 是必要的。

温馨提示:磁盘是不允许保存文件的,所以我用这种方式发送。