问题标签 [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 投票
6 回答
16149 浏览

java - 我应该使用什么顺序 GzipOutputStream 和 BufferedOutputStream

谁能推荐我是否应该做类似的事情:

或者

哪个更有效率?我应该使用 BufferedOutputStream 吗?

0 投票
4 回答
5096 浏览

java - 用 Java 压缩 用 PHP 解压缩

我有一个 servlet 正在向 PHP 脚本提供压缩数据的情况。我在Java端压缩数据没问题,但是PHP好像解压不了。

这是Java端的相关代码片段:

PHP端:

有人可以指出我正确的方向。

0 投票
6 回答
10879 浏览

java - 在 Java 中强制刷新 GZIPOutputStream

我们正在开发一个需要刷新(强制压缩和发送数据)GZIPOutputStream 的程序。问题是,GZIPOutputStream 的 flush 方法没有按预期工作(强制压缩和发送数据),而是 Stream 等待更多数据以进行有效的数据压缩。

当您调用完成时,数据被压缩并通过输出流发送,但 GZIPOutputStream(不是底层流)将被关闭,因此在创建新的 GZIPOutputStream 之前我们无法写入更多数据,这会耗费时间和性能。

希望任何人都可以帮助解决这个问题。

此致。

0 投票
3 回答
37192 浏览

android - 安卓中的 GZip

如何使用 GZip 在 android 中压缩和解压缩文件。请提供一些参考,以便对我有很大帮助。

提前致谢

0 投票
2 回答
743 浏览

java - GZipOutputStream 和应用引擎

我正在 AppEngine 上编写一个 java servlet。此 servlet 生成 png 图像。我想“gzip”响应。我这样做:

但是:在开发服务器中,没关系,png 显示正常,响应很好 gzip 压缩。然后我在生产服务器(AppEngine)上进行测试,我得到的只是一个“损坏”的图像......

替代文字

我的代码可能有什么问题?它与开发/生产环境有关吗?

当然,如果我不 gzip 输出,在两种环境中都可以。

谢谢你的帮助。


编辑:我也试过这个:

它也不起作用。


编辑2:实际上,响应是gzip。我用“curl theUrl > tmp.gz”获取了 servlet,然后我用 gunzip 压缩了“tmp.gz”,图像很好。但是没有浏览器可以正确显示它:(我的 gzip 有什么问题?

0 投票
3 回答
8675 浏览

java - GZIPOutputStream 和 DeflaterOutputStream 有什么区别?

GZIPOutputStream只是一个子类,DeflaterOutputStream但两者都可以实例化。我什么时候使用一个而不是另一个?压缩是一样的吗?

0 投票
2 回答
711 浏览

java - 是否已知 GZIPOutputStream 在压缩期间会丢失数据?

压缩双精度数组时,我对GZIPOutputStream有一个非常奇怪的问题。在第 57 个元素处,当我重新加载数据时,我得到了一个小的差异:

1900 和 2000 是两组不同的双打。左值是原始值。

当我使用没有 GZIP 的简单FileOutputStream时,我不明白这个问题。为什么?GZIP 输出流是否会丢失信息?

编辑

以下是我读取和写入数据的方式:

0 投票
2 回答
11330 浏览

android - 使用 GZIPOutputStream 压缩字符串

我想压缩我的字符串值。这些字符串值应与.net压缩字符串相同。

我编写了Decompress方法,当我向它发送一个.net压缩字符串时,它可以正常工作。但是Compress方法不能正常工作。

For example when I send "BQAAAB+LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee++997o7nU4n99//P1xmZAFs9s5K2smeIYCqyB8/fnwfPyLmeVlW/w+GphA2BQAAAA==" to Decompress method It returns the string "Hello", but when I send "Hello" to Compress method It returns "H4sIAAAAAAAAAMtIzcnJBwCGphA2BQAAAA= ="

Compress方法有什么问题???

0 投票
1 回答
4329 浏览

java - java 将 GZIPOutputStream 和 ByteArrayOutputStream 包装在一起 - 我做错了什么?

主.java

CompressedOutputStream.java

所以我有这段代码,它试图将 GZIPOutputStream 与 ByteArrayOutputStream 结合起来。

出于某种原因,我得到的只是相同的 10 个字节。
得到这个输出:

压缩数据长度(到目前为止)为 10 字节
总压缩数据长度为 10 字节
数据的 CRC32 为 4550d94d

似乎调用 write() 以抽象函数结束,即它没有到达任何地方,也没有写入任何内容。
我希望它在运行中被写入、压缩,并且能够在以后获取压缩的字节。

我在这里想念什么?似乎微不足道,但并非如此。

编辑#1:我的最终目标
只是澄清一下:最后我需要的是一个内存缓冲区,我将写入块中而不是序列中,并且在某个时候它达到X字节时我会能够获取这些压缩和校验和的字节(将它们写入某处,而不是标准的 Java 流)。

0 投票
1 回答
1115 浏览

java - Java:将 setDictionary 用于 GZIPOutputStream 的 Deflater 时出现 CRC 错误

我正在尝试从标准输入获取数据流,一次压缩一个 128 字节块,然后将其输出到标准输出。(例如:“cat file.txt | java Dict | gzip -d | cmp file.txt”,其中 file.txt 只包含一些 ASCII 字符。)

对于每个后续块,我还需要使用取自前一个 128 字节块末尾的 32 字节字典。(第一个块使用它自己的前 32 个字节作为它的字典。)当我根本不设置字典时,压缩工作正常。但是,当我设置字典时,gzip 给我一个尝试解压缩数据的错误:“gzip:stdin:无效压缩数据--crc 错误”。

我已经尝试添加/更改代码的几个部分,但到目前为止没有任何效果,而且我没有任何运气找到谷歌的解决方案。

我试过了...

  • 在代码底部附近的“def.setDictionary(b)”之前添加“def.reset()”不起作用。
  • 仅在第一个块之后为块设置字典不起作用。(第一个块不使用字典。)
  • 在compressor.write(input, 0, bytesRead) 之前或之后使用“input”数组调用updateCRC 不起作用。

我真的很感激任何建议 - 有什么明显的我遗漏或做错了吗?

这就是我的 Dict.java 文件中的内容: