如何使用deflater压缩字节数组?我尝试了Oracle页面中的放气-充气示例。它运行良好。
我的疑问是如何使byte[]大小动态。?字节[]压缩前后如何计算?
API有点令人困惑。看看finished((,它在试图压缩到too-small缓冲区后告诉您它太小了。
你唯一的机会是
- 如果
finished()==false
和/或 - 从足够大的缓冲区开始(也可能太小(
一种替代方法可以是使用DeflaterOutputStream写入ByteArrayOutputStream,但这比您要求的方法要高级得多。