0

如何使用 deflater 压缩字节数组?我尝试使用 Oracle 页面中的 deflate inflate 示例。它工作得很好。

我的疑问是如何使 byte[] 大小动态化。?以及如何计算 byte[] 的压缩前后?

4

1 回答 1

0

API有点混乱。看一下finished() ,它在尝试压缩到一个太小的缓冲区告诉你它太小了。

你唯一的机会是

  • finished()==false如果和/或递增地增加缓冲区
  • 从足够大的缓冲区开始(也可能太小)。

一种替代方法是使用DeflaterOutputStream写入ByteArrayOutputStream,但这比您要求的方法要高级得多。

于 2020-02-27T20:27:56.030 回答