问题标签 [jzlib]

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 投票
3 回答
2709 浏览

java - 使用 jzlib 创建 gzip 文件

我正在尝试使用开源的 jzlib 创建一个 gzip 文件。Java GZIPOutputStream 有点问题,CPU 变得更高,从未释放。

JZlib 文件无法被 winrar 打开的问题,似乎缺少标题。知道如何解决吗?

0 投票
3 回答
3334 浏览

java - 无法使用 Apache MINA 压缩过滤器对使用 java.util.zip.Deflater 放气的缓冲区进行充气

本次测试:

失败:

这里出了什么问题?

更新:如果我添加

Zlib.java的第 139 行,它可以很好地解码。

0 投票
2 回答
345 浏览

java - jzlib 1.0.7:ZOutputStream.write() 中的 ArrayOutOfBoundException

我有一个简单的测试用例在 jzlib 1.0.7 中产生一个确定的 ArrayOutOfBoundException,具体取决于随后写入 ZOutputStream 的同一个实例的数据。

堆栈跟踪:

该问题很少发生,并且取决于随后从 jzlib 写入打开的 ZOutputStream 的数据。

你有提示如何解决这个问题吗?你听说过这个吗?

0 投票
1 回答
2510 浏览

java - Android InflaterInputStream 是否与流行的 ZLIB Windows 库相同?

我正在尝试解压缩使用 Jean-loup Gailly 在 1990 年代编写的 ZLIB 库压缩的数据。我认为它是一个流行的库(我看到很多程序都提供它使用的 zlib32.dll 文件)所以我希望有人对它足够熟悉以帮助我。我直接使用 compress() 函数,从我读到的内容使用 rfc-1951 DEFLATE 格式。

这是我用来从流中读取一些压缩数据并解压缩的代码段:

iis.read(buf2) 函数引发“数据格式错误”的内部异常。我也尝试使用 GZIPInputStream ,但这也会引发相同的异常。

“buf”变量是 byte[] 类型,我通过调试确认它与我的 C 程序从 ZLIB compress() 函数返回的相同(实际数据来自 TCP 上的服务器)。“uncompressedDataLength”是由 C 程序(服务器)提供的未压缩数据的已知大小。

有没有人尝试过使用这个库读取/写入数据,然后使用 Java 在 Android 上读取/写入相同的数据?

我确实在一些地方找到了“ZLIB 的纯 Java 端口”,如果需要,我可以尝试,但如果可能的话,我宁愿使用内置/OS 函数。

0 投票
2 回答
1564 浏览

compression - 如何为放气压缩计算好的预设字典

我有机会为放气压缩预设字典。在我的情况下这是有道理的,因为要压缩的数据相对较小,只有 1kb-3kb,而且我有大量代表性示例。要压缩的数据由任意字节序列组成,因此标记化等不是一个好方法。此外,数据显示出大量重复(在数据示例之间),因此好的字典可能会产生非常好的结果。问题是如何计算好的字典?是否有计算最佳字典的算法(给定样本数据)?

我开始研究前缀树,但不清楚如何在这种情况下使用它们。

最好的问候,贾雷克

0 投票
1 回答
737 浏览

javascript - Json 解码和解析错误 node.js

嗨,我正在尝试这样做

我正在按照以下步骤操作:

  1. 从 url 获取数据
  2. 使用zlib.gunzip解压
  3. 将解码后的数据转换为字符串
  4. 替换所有换行符和喙语句
  5. 我正在尝试解析引发错误的字符串

我在使用 解析数据时遇到错误JSON.parse,这是githubdataset的公开内容。我不知道我要去哪里错了,任何人都可以帮忙。

0 投票
1 回答
304 浏览

vba - 如何在 VBA 6/VBA 7 和 Java 8 之间匹配 ZLib 流?

我们能够做到以下几点。

在 VBA 6/VBA 7 中:

  • 请参阅 32 位 zlibwapi.dll (VBA 6) 或 64 位 zlibwapi.dll (VBA 7)。
  • 调用 compress() 或 compress2() 方法来生成压缩
  • 调用 uncompress() 和 uncompress2() 方法来解压缩压缩流

在 Java 8 中(Tomcat 8 上的 JDK 1.8)

  • 有一个简单的 java 程序,使用新的 Deflater() 实例压缩数据
  • 有一个使用 Inflater() 实例解压缩的简单 Java 程序

当 VBA 发送压缩流以供 Java Servlet 解压缩或 Java Servlet 发送压缩响应数据以供 VBA 解压缩时,我们将失败。

我们知道以下事实。

  1. ZLib 提供了 3 种格式(raw、zlib 和 gzip)。
  2. zlibwapi.dll 中的方法 compress() 和 compress2() 生成 zlib 格式的压缩字节。这已在 Java decompressing array of bytes的类似线程中提到
  3. Java 端的 Inflater() 实例允许按照 使用 deflater 压缩/解压缩字符串中发布的代码示例解压缩 zlib 格式数据
  4. Java 8 将 zlib 1.2.5 版集成为 java.utils.zip 包的一部分。
  5. 我们确保我们也在 VBA 端使用 zlibwapi.dll 版本 1.2.5。

我们尝试使用十六进制编辑器来比较由 VBA 和 Java 独立生成的压缩数据的字节流。我们注意到生成的压缩数据存在一些差异。我们认为正是这种差异导致两个环境相互误解。

此外,我们认为当通信发生时,必须有一些共同的字符集来管理两个端点之间的编码/解码方案。我们甚至尝试比较 VBA 生成并与 Java Servlet 通信的字节流的十六进制代码。

  1. 在通信发生时,这些字节似乎在实际的压缩字节集之间插入了一些额外的 0 字节。这发生在 VBA 端。可能是因为一些 unicode 解释。
  2. 无论通过 Java 传递什么字节,它们的表示形式都完全不同。

我们需要修复我们独立工作的代码以相互通信并和平地压缩和解压缩。我们认为有两件事要解决 - 获取匹配的格式和使用按原样发送字节的字符集。我们正在寻求这方面专家的任何帮助,以帮助我们找到可能的解决方案的正确途径。我们需要答案

  1. compress2() 或 compress() 真的生成 zlib 格式吗?
  2. 哪个字符集允许我们按原样发送字节(如果有 10 个字节,我们想发送 10 个字节。不是 20 个)。如果它的 unicode,0 个字节被插入在中间(10 个字节因此变成 20 个字节)。
0 投票
1 回答
158 浏览

java - Zlib inflate 与 C 的工作方式不同?

我试图在java中对一个字节数组进行zlib膨胀,但是当我膨胀它时我没有得到返回的Z_STREAM_END。我的代码与我查看的一些 C 代码完全相同,它们使用相同的数据、滑动窗口和其他参数(我认为?)。我正在使用 JZlib。这是我的 Java 代码(dgboff 只是这个 zlib 字节数组在文件中的偏移量):

这是C代码,它可以工作(忽略凌乱的间距):

如果有什么我想念的,请告诉我!

我正在测试的数据的 zlib 标头是 0x649d。