java - jzlib 1.0.7 : ArrayOutOfBoundException in ZOutputStream. 写()

标签 java jzlib

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

堆栈跟踪:

java.lang.ArrayIndexOutOfBoundsException: 587
    at com.jcraft.jzlib.Tree.d_code(Tree.java:149)
    at com.jcraft.jzlib.Deflate.compress_block(Deflate.java:691)
    at com.jcraft.jzlib.Deflate._tr_flush_block(Deflate.java:897)
    at com.jcraft.jzlib.Deflate.flush_block_only(Deflate.java:772)
    at com.jcraft.jzlib.Deflate.deflate_slow(Deflate.java:1195)
    at com.jcraft.jzlib.Deflate.deflate(Deflate.java:1567)
    at com.jcraft.jzlib.ZStream.deflate(ZStream.java:133)
    at com.jcraft.jzlib.ZOutputStream.write(ZOutputStream.java:102)
    at com.jcraft.jzlib.JZLibTestCase.main(JZLibTestCase.java:51)
       at JZLibTestCase.main(JZLibTestCase.java:28)

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

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

最佳答案

据我所知,您可能已经发现了 JZlib 的错误。在四处搜索时,我发现其他地方有您的帖子,并附有源文件和数据文件。看来你没有做错什么。您应该能够将任何字节序列流式传输到 ZOutputStream

您使用 JZlib 有什么特殊原因吗?我理解使用它的两个主要原因是支持 Z_PARTIAL_FLUSH 模式和许可。如果您不需要该刷新模式并且您正在使用 Oracle JVM,那么您应该可以使用包含的 DeflaterOutputStream 。在代码中将其替换为 ZOuputStream 不会出现异常。

关于java - jzlib 1.0.7 : ArrayOutOfBoundException in ZOutputStream. 写(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646101/

相关文章:

java - 用java解析 {“item” =“value” }

java - Spring boot Reactive 应用程序启动 tomcat 代替 Netty

java - zip 文件内的 zip 文件的文件系统

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

java - 什么可能导致 java.lang.reflect.InvocationTargetException?

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

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

java - 使用 jzlib 创建 gzip 文件

java - 编译器的模糊参数,当它对我来说不模糊时