gpt4 book ai didi

Java - 压缩输出字节数组的大小

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:17 24 4
gpt4 key购买 nike

当使用 java.util.zip.Deflater 的 deflate 方法时,必须提供一个 byte[] 作为参数,这个 byte[] 应该初始化到多大?我读过不能保证压缩数据甚至比未压缩数据更小。我应该接受一定比例的输入吗?目前我把它做成输入的两倍

最佳答案

调用 deflate 后,调用 finished 看是否还有更多输出。例如:

byte[] buffer = new byte[BUFFER_SIZE];
while (!deflater.finished()) {
int n = deflater.deflate(buffer);
// deal with the n bytes in out here
}

如果您只想收集内存中的所有字节,您可以使用 ByteArrayOutputStream。例如:

byte[] buffer = new byte[BUFFER_SIZE];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while (!deflater.finished()) {
int n = deflater.deflate(buffer);
baos.write(buffer, 0, n);
}
return baos.toByteArray();

关于Java - 压缩输出字节数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com